1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

/usr/share/nvidia, does anyone have this directory?

Discussion in 'General Linux Discussion' started by ThunderRd, Dec 23, 2014.

  1. ThunderRd

    ThunderRd Irreverent Query Chairman Staff Member

    Joined:
    Dec 17, 2012
    Messages:
    2,553
    Likes Received:
    85
    Trophy Points:
    48
    Location:
    Northern Thailand, the Land of Smiles
    Home page:
    I'm trying to troubleshoot something; nvidia-settings is showing me this error:

    Code:
    ERROR: nvidia-settings could not find the registry key file. This file should have been installed along with this driver at either:
    
      /usr/share/nvidia/nvidia-application-profiles-340.65-key-documentation or
      /usr/share/nvidia/nvidia-application-profiles-key-documentation
    
    The application profiles will continue to work, but values cannot be  populated or validated, and will not be listed in the help text. Please see the README for possible values and descriptions.
    Not only do I not have the indicated missing file, but I don't even have the directory.
    If you do, please post the contents of either of the two files above so I can take a look at them?
  2. Daerandin

    Daerandin Well-Known Member

    Joined:
    Oct 18, 2013
    Messages:
    1,087
    Likes Received:
    231
    Trophy Points:
    63
    Location:
    Northern Norway
    Home page:
    I have a different version of the nvidia driver, but this is the content of this directory on my system, along with the content of the files.

    Code:
    $ ls -1 /usr/share/nvidia
    
    nvidia-application-profiles-343.36-key-documentation
    nvidia-application-profiles-343.36-rc
    
    Code:
    $ cat /usr/share/nvidia/nvidia-application-profiles-343.36-key-documentation
    
    # Application profiles for the NVIDIA Linux graphics driver, version 343.36
    # Last modified: Mon Dec  1 15:53:39 PST 2014
    # These settings keys were provided by NVIDIA and should not be modified.
    {
        "registry_keys": [
            {
                "key": "GLFSAAMode",
                "description": "This setting enables full-scene antialiasing in a process using OpenGL. This expects the same integer value that can be used to configure FSAA through nvidia-settings and the NV-CONTROL X extension. To see available FSAA values, run:\n\n\tnvidia-settings --query=fsaa --verbose",
                "type": "integer"
            },
            {
                "key": "GLLogMaxAniso",
                "description": "This enables anisotropic texture filtering. The possible values are:\n\n\t0\tNo anisotropic filtering\n\t1\t2x anisotropic filtering\n\t2\t4x anisotropic filtering\n\t3\t8x anisotropic filtering\n\t4\t16x anisotropic filtering",
                "type": "integer"
            },
            {
                "key": "GLNoDsoFinalizer",
                "description": "This works around problems with certain multithreaded applications in which one thread exits while others are executing OpenGL code. This may be set to true or false.",
                "type": "boolean"
            },
            {
                "key": "GLSingleThreaded",
                "description": "This works around some legacy dynamic loaders which can cause applications linked against pthreads which dlopen() libGL multiple times to crash. This may be set to true or false. ",
                "type": "boolean"
            },
            {
                "key": "GLSyncDisplayDevice",
                "description": "This allows an application to specify target a display device to sync with if sync to vblank is enabled. This should be set to a string containing a valid display device name (for example, \"CRT-1\").",
                "type": "string"
            },
            {
                "key": "GLSyncToVblank",
                "description": "This enables sync to vblank for an application. This may be set to true or false. ",
                "type": "boolean"
            },
            {
                "key": "GLSortFbconfigs",
                "description": "By default the NVIDIA GLX implementation will sort FBConfigs as described by the specification. This may be set to false to disable this behavior.",
                "type": "boolean"
            },
            {
                "key": "GLAllowUnofficialProtocol",
                "description": "Setting this to true will allow the client-side NVIDIA GLX implementation to send \"incomplete\" GLX protocol.",
                "type": "boolean"
            },
            {
                "key": "GLSELinuxBooleans",
                "description": "This allows the user to override driver detection of specific SELinux policy booleans, which may work around problems when running the driver under SELinux in permissive mode. This should be set to a string value; see __GL_SELINUX_BOOLEANS in the README for a description of legal string formats.",
                "type": "string"
            },
            {
                "key": "GLShaderDiskCache",
                "description": "This enables the shader disk cache for direct rendering. This value may be set to true or false.",
                "type": "boolean"
            },
            {
                "key": "GLShaderDiskCachePath",
                "description": "This setting affects where shader caches are stored on disk for a given application. This value should be set to a string containing a valid pathname.",
                "type": "string"
            },
            {
                "key": "GLYield",
                "description": "This controls how the NVIDIA graphics driver will perform a yield. This may be set to one of the following strings:\n\n\t\"USLEEP\"\tOpenGL will call usleep(0) to yield\n\t\"NOTHING\"\tOpenGL will never yield\n\t<any other value>\tOpenGL will call sched_yield() to yield (default)",
                "type": "string"
            },
            {
                "key": "GLThreadedOptimizations",
                "description": "This setting enables multi-threaded optimizations in the OpenGL driver which may improve application performance. This may be set to true or false.",
                "type": "boolean"
            },
            {
                "key": "GLDoom3",
                "description": "This enables optimal SLI and Multi-GPU settings for games such as Doom 3 and Quake 4. This may be set to true or false.",
                "type": "boolean"
            },
            {
                "key": "GLExtensionStringVersion",
                "description": "This forces the extension string returned by glXQueryExtensionsString() to one that appeared in an earlier version of the NVIDIA graphics driver. This may work around bugs in certain applications which expect an extension string to be smaller than a certain size. This value should be set to a string value or integer containing the desired version number (e.g. \"17700\" to force the extension string in the 177.* driver series).",
                "type": "string"
            },
            {
                "key": "GLAllowFXAAUsage",
                "description": "If FXAA is globally enabled, setting this to false disables FXAA for an individual application. This has no effect if FXAA is globally disabled.",
                "type": "boolean"
            },
            {
                "key": "GLGSYNCAllowed",
                "description": "When set to false, this key prevents G-SYNC from being used. Otherwise, G-SYNC is used whenever it is available.",
                "type": "boolean"
            },
            {
                "key": "GLWriteTextSection",
                "description": "This determines whether the NVIDIA driver will attempt to use optimizations which rely on being able to write to executable memory.  This may be set to true or false",
                "type": "boolean"
            },
            {
                "key": "GLIgnoreGLSLExtReqs",
                "description": "Setting this key to true causes the NVIDIA OpenGL driver to ignore GLSL compilation errors due to referencing globals defined in an extension without a corresponding #extension directive",
                "type": "boolean"
            }
        ]
    }
    
    Code:
    $ cat /usr/share/nvidia/nvidia-application-profiles-343.36-rc
    
    # Application profiles for the NVIDIA Linux graphics driver, version 343.36
    # Last modified: Mon Dec  1 15:53:39 PST 2014
    # These profiles were provided by NVIDIA and should not be modified.  If you
    # wish to change the defaults provided here, you can override them by creating
    # custom rules in /etc/nvidia/nvidia-application-profiles-rc (which will apply
    # system-wide) or, for a given user, $HOME/.nv/nvidia-application-profiles-rc
    # (which will apply to that particular user). See the "APPLICATION PROFILE
    # SEARCH PATH" section of the NVIDIA Linux Graphics Driver README for more
    # information.
    {
        "profiles" : [
            {
              "name" : "NonConformantBlitFramebufferScissor",
              "settings" : [ "GLConformantBlitFramebufferScissor", false ]
            },
            {
              "name" : "CL1C",
              "settings" : [ "0x528ab3", 1 ]
            },
            {
              "name" : "FA0",
              "settings" : [ "10572898", 0 ]
            },
            {
              "name" : "ExactGLESVersion",
              "settings" : [ "ForceRequestedESVersion", 1 ]
            },
            {
              "name" : "IgnoreGLSLExtensionRequirements",
              "settings" : [ "GLIgnoreGLSLExtReqs", true ]
            },
            {
              "name" : "No GSYNC",
              "settings" : [ "GLGSYNCAllowed", false ]
            }
        ],
        "rules" : [
            {
              "pattern" : {
                "feature" : "dso",
                "matches" : "libcogl.so"
              },
              "profile" : "NonConformantBlitFramebufferScissor"
            },
            {
              "pattern" : {
                "feature" : "dso",
                "matches" : "libMaya.so"
              },
              "profile" : "CL1C"
            },
            { "pattern" : "xsi", "profile" : "CL1C" },
            { "pattern" : "HoudiniFX", "profile" : "CL1C" },
            { "pattern" : "katana", "profile" : "CL1C" },
            { "pattern" : "Autodesk Mudbox 2014 64-bit", "profile" : "CL1C" },
            { "pattern" : "octane", "profile" : "CL1C" },
            { "pattern" : "Fusion64_6.4", "profile" : "CL1C" },
            { "pattern" : "Nuke7.0", "profile" : "CL1C" },
            { "pattern" : "vray.exe", "profile" : "CL1C" },
            { "pattern" : "vray.bin", "profile" : "CL1C" },
            { "pattern" : "kwin_gles", "profile" : "FA0" },
            { "pattern" : "kwin_gles", "profile" : "ExactGLESVersion" },
            {
              "pattern" : [
                { "feature" : "procname", "matches" : "heaven_x86"},
                { "op" : "not", "sub" : { "feature" : "findfile", "matches" : "browser_x86" } }
              ],
              "profile" : "IgnoreGLSLExtensionRequirements"
            },
            {
              "pattern" : [
                { "feature" : "procname", "matches" : "heaven_x64"},
                { "op" : "not", "sub" : { "feature" : "findfile", "matches" : "browser_x64" } }
              ],
              "profile" : "IgnoreGLSLExtensionRequirements"
            },
            { "pattern" : { "feature" : "procname", "matches" : "cinnamon" },      "profile" : "No GSYNC" },
            { "pattern" : { "feature" : "procname", "matches" : "compiz" },        "profile" : "No GSYNC" },
            { "pattern" : { "feature" : "procname", "matches" : "enlightenment" },  "profile" : "No GSYNC" },
            { "pattern" : { "feature" : "procname", "matches" : "gnome-shell" },    "profile" : "No GSYNC" },
            { "pattern" : { "feature" : "procname", "matches" : "kwin" },          "profile" : "No GSYNC" },
            { "pattern" : { "feature" : "procname", "matches" : "muffin" },        "profile" : "No GSYNC" },
            { "pattern" : { "feature" : "dso",      "matches" : "libmutter.so" },  "profile" : "No GSYNC" }
        ]
    }
    
  3. ThunderRd

    ThunderRd Irreverent Query Chairman Staff Member

    Joined:
    Dec 17, 2012
    Messages:
    2,553
    Likes Received:
    85
    Trophy Points:
    48
    Location:
    Northern Thailand, the Land of Smiles
    Home page:
    Thanks for that, D.

    Just before I found your post, I figured out a workaround. nvidia-drivers does not create the directory or its contents if the 'tools' use flag isn't enabled. This flag also creates a driver-dependent version of nvidia-settings. I disabled this flag a long time ago for xfce4-sensors-plugin, which requires nvidia-settings and compiles against it; there is a standalone package for that purpose in portage, which I have run all along. The plugin can't/doesn't work with the driver-dependent version.

    So my problem is these new error messages are happening now. So I figured out that if I compile the driver with the tools flag enabled, generating the directory and its contents, and then recompile the driver without the flag, and keep the directories intact, everything works as it should. It's a kludge, but I filed a bug so the devs can check it out.

Share This Page