Uploaded image for project: 'Snowstorm'
  1. Snowstorm
  2. STORM-2087

Failed to link shader error: Two Texture Compare Shader, NVIDIA GeForce 7300 on post Interesting viewers only.

    XMLWordPrintableJSON

    Details

    • Type: Defect
    • Status: In Progress
    • Priority: Minor
    • Resolution: Accepted
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Environment:

      Description

      Firestorm has had a couple of reports about basic shaders not working on our latest release with the viewer-interesting code.
      One of our users tested on Second Life 3.7.13 (292225) Jul 22 2014 00:31:11 (Second Life Release) and is able to reproduce the same problem.
      I am filing this issue on their behalf.

      The system information given under Environment is from an affected system, not my system.

      Steps To Reproduce

      • Login on Second Life 3.7.13 (292225) Jul 22 2014 00:31:11 (Second Life Release) on a system with a NVIDIA GeForce 7300 card using the latest graphics driver available which is 307.83 - http://www.nvidia.com/download/driverResults.aspx/57493/en-us
      • Attempt to enable Basic Shaders and Atmospheric Shaders under Preferences -> Graphics -> Advanced.
      • Compare results on a viewer build before the viewer-Interesting changes. Specifically a build before the SH-3665 fixes.

      Observed Behaviour

      • Basic shaders and Atmospheric shaders are tickable but shaders do not work.
      • Logs from Second Life 3.7.13 (292225) Jul 22 2014 00:31:11 (Second Life Release) are attached from a session on an affected system.
      • Observe the following in the logs:

      Card appears correctly detected in gpu_table

      INFO: LLFeatureManager::parseGPUTable: GPU 'NVIDIA Corporation GeForce 7300 GT/PCIe/SSE2' recognized as 'NVIDIA GeForce 7300'
      INFO: LLFeatureManager::applyBaseMasks: Setting GPU Class to Class1
      INFO: LLFeatureManager::maskFeatures: Applying GPU Feature list: Class1
      INFO: LLFeatureManager::maskFeatures: Applying GPU Feature list: OpenGLPre30
      INFO: LLFeatureManager::maskFeatures: Applying GPU Feature list: MapBufferRange
      INFO: LLFeatureManager::maskFeatures: Applying GPU Feature list: NVIDIA_GeForce_7300
      

      LLViewerShaderMgr::setShaders: Using GLSL 1.20
      

      Shader compile error in Two Texture Compare Shader, twotexturecompareF.glsl

      2014-08-14T16:30:16Z WARNING: LLShaderMgr::loadShaderFile: GLSL Compilation Error:
      2014-08-14T16:30:16Z WARNING: LLShaderMgr::dumpObjectLog: From interface/twotexturecompareF.glsl:
      2014-08-14T16:30:16Z WARNING: LLShaderMgr::dumpObjectLog: 0(56) : error C7532: global function texture requires "#version 130" or later
      

      2014-08-14T16:30:16Z WARNING: LLShaderMgr::loadShaderFile: Failed to load interface/twotexturecompareF.glsl
      2014-08-14T16:30:16Z WARNING: LLGLSLShader::createShader: Failed to link shader: Two Texture Compare Shader
      2014-08-14T16:30:16Z WARNING: LLGLSLShader::createShader: Failed to link using shader level 1 trying again using shader level 0
      2014-08-14T16:30:16Z WARNING: LLShaderMgr::loadShaderFile: GLSL Shader file not found: interface/twotexturecompareV.glsl
      2014-08-14T16:30:16Z WARNING: LLShaderMgr::loadShaderFile: GLSL Shader file not found: interface/twotexturecompareF.glsl
      2014-08-14T16:30:16Z WARNING: LLGLSLShader::createShader: Failed to link shader: Two Texture Compare Shader
      

      • On this system, shaders work on pre-interesting viewers and there are no shader linking errors in logs.

      Expected Behaviour

      • Shaders to still work on this card and driver version as they did on pre-interesting viewers.
      • If this card no longer supports shaders since Interesting, the basic shader checkbox under graphics preferences should be greyed out and untickable.

      Other Information

      Ansariel Hiller from Firestorm found the cause of this to be the fix for "SH-3665: more post processing of the frame difference image"
      https://bitbucket.org/lindenlab/viewer-release/commits/429279786da7c9c0f5cc1ee3e747de3753f0e681

      Specifically this line in indra/newview/app_settings/shaders/class1/interface/twotexturecompareF.glsl

      vec4 dither_vec = texture(dither_tex, dither_coord.xy);

      GLSL 1.20 doesn't know the texture function and shader compile fails.
      It needs GLSL 1.30 or later.
      Unfortunately there isnt an updated driver available for this card, even if the operating system is updated to Windows 7 or Windows 8.


      This may be related to BUG-4466, which has been fixed for Mac.
      The shader linking error here was also in twotexturecompareF.glsl

        Attachments

          Activity

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            whirly.fizzle Whirly Fizzle
            Contributor:
            Ansariel Hiller
            Watchers:
            1 Start watching this issue

              Dates

              Due:
              Created:
              Updated:
              Resolved:

                PagerDuty