Bug 27349

Summary: Enabling GLSL in Second Life hangs game
Product: DRI Reporter: Shawn Starr <shawn.starr>
Component: DRM/IntelAssignee: Ian Romanick <idr>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: medium CC: kai.kasurinen
Version: DRI gitKeywords: NEEDINFO
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 29044    
Attachments:
Description Flags
GLSL dump none

Description Shawn Starr 2010-03-27 21:39:38 UTC
When I try to enable additional GLSL shader programs the game locks up. 

If someone can provide debugging options I can test and report what might be happening.

2.6.34-rc2 + latest anholt intel drm fixes, latest drm-next-intel. Latest DDX/mesa git master libdrm master.
Comment 1 Jesse Barnes 2010-04-12 15:15:02 UTC
Sounds like a Mesa related bug.  Ian?
Comment 2 Shawn Starr 2010-04-29 20:03:41 UTC
So, if I have GLSL enabled for game prior to it starting it sort of works. But toggling it off then on again hangs game.


Starting the game with GLSL disabled then trying to enable will hang the game as well.

This is with 2.6.34-rc5 git master + airlied/anholt drm branches, libdrm git master, intel DDX git master, mesa git master.
Comment 3 Shawn Starr 2010-09-02 20:45:45 UTC
under gdb:

ir_dereference_variable @ 0xdc80650 specifies undeclared variable `gl_LightModel' @ 0xdb83670                                                                

Program received signal SIGABRT, Aborted.

bt stack:

#0  0x0000003420c33f05 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x0000003420c358b6 in abort () at abort.c:92
#2  0x00007fffeec98cf9 in ir_validate::visit (this=0x7fffffffce00, ir=0xdc80650) at ir_validate.cpp:93
#3  0x00007fffeec927a5 in ir_dereference_record::accept (this=0xdc806e0, v=0x7fffffffce00) at ir_hv_accept.cpp:261
#4  0x00007fffeec926be in ir_swizzle::accept (this=0xc542310, v=0x7fffffffce00) at ir_hv_accept.cpp:226
#5  0x00007fffeec9251c in ir_expression::accept (this=0xe03a650, v=0x7fffffffce00) at ir_hv_accept.cpp:146
#6  0x00007fffeec926be in ir_swizzle::accept (this=0xe03a6f0, v=0x7fffffffce00) at ir_hv_accept.cpp:226
#7  0x00007fffeec92827 in ir_assignment::accept (this=0xe03a780, v=0x7fffffffce00) at ir_hv_accept.cpp:277
#8  0x00007fffeec92331 in visit_list_elements (v=0x7fffffffce00, l=<value optimized out>) at ir_hv_accept.cpp:48
#9  0x00007fffeec92462 in ir_function_signature::accept (this=0xc56bb20, v=0x7fffffffce00) at ir_hv_accept.cpp:120
#10 0x00007fffeec92331 in visit_list_elements (v=0x7fffffffce00, l=<value optimized out>) at ir_hv_accept.cpp:48
#11 0x00007fffeec924b9 in ir_function::accept (this=0xc56ba10, v=0x7fffffffce00) at ir_hv_accept.cpp:132
#12 0x00007fffeec92331 in visit_list_elements (v=0x7fffffffce00, l=<value optimized out>) at ir_hv_accept.cpp:48
#13 0x00007fffeec99620 in validate_ir_tree (instructions=0xddcabe0) at ir_validate.cpp:395
#14 0x00007fffeec73ee5 in _mesa_ir_link_shader (ctx=0x3348290, prog=0xdda0610) at program/ir_to_mesa.cpp:2644
#15 0x00007fffeeb7b3f4 in brw_link_shader (ctx=0x3348290, prog=0xdda0610) at brw_fs.cpp:154
#16 0x00007fffeec741c0 in _mesa_glsl_link_shader (ctx=0x3348290, prog=0xdda0610) at program/ir_to_mesa.cpp:2777
#17 0x000000000160f8ce in LLShaderMgr::linkProgramObject(unsigned int, int) ()
#18 0x00000000015fb4bd in LLGLSLShader::mapAttributes(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const*) ()
#19 0x00000000015fc855 in LLGLSLShader::createShader(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*) ()
#20 0x00000000011d5d13 in LLViewerShaderMgr::loadShadersEnvironment() ()
#21 0x00000000011d8ecc in LLViewerShaderMgr::setShaders() ()
#22 0x00000000010346d1 in handleSetShaderChanged(LLSD const&) ()
#23 0x000000000122a0e5 in boost::signal1<void, LLSD const&, boost::last_value<void>, int, std::less<int>, boost::function<void ()(LLSD const&)> >::operator()(LLSD const&) ()
#24 0x00000000017b9cbe in LLControlVariable::setValue ()
#25 0x00000000017bb0d8 in LLControlGroup::setValue(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LLSD const&) ()
#26 0x000000000175fe7d in LLView::setControlValue(LLSD const&) ()
#27 0x0000000001639567 in LLButton::handleMouseUp(int, int, unsigned int) ()
#28 0x000000000120b0d3 in LLViewerWindow::handleMouseUp(LLWindow*, LLCoordGL, unsigned int) ()
#29 0x00000000017adb27 in LLWindowSDL::gatherInput() ()
#30 0x00000000004d82a8 in LLAppViewer::mainLoop() ()
#31 0x0000000001402f11 in main ()
Comment 4 Ian Romanick 2010-09-09 16:25:12 UTC
(In reply to comment #3)
> under gdb:
> 
> ir_dereference_variable @ 0xdc80650 specifies undeclared variable
> `gl_LightModel' @ 0xdb83670

I created a piglit test case, glsl-light-model.c, that I thought might reproduce this, but it does not.  Could you run with MESA_GLSL=dump and attach the output?
Comment 5 Shawn Starr 2010-09-12 17:17:11 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > under gdb:
> > 
> > ir_dereference_variable @ 0xdc80650 specifies undeclared variable
> > `gl_LightModel' @ 0xdb83670
> 
> I created a piglit test case, glsl-light-model.c, that I thought might
> reproduce this, but it does not.  Could you run with MESA_GLSL=dump and attach
> the output?

I'll try to run today's piglet snapshot, but every time I do, it ends up GPU resetting causing me to need to restart laptop
Comment 6 Shawn Starr 2010-09-12 17:20:25 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > under gdb:
> > > 
> > > ir_dereference_variable @ 0xdc80650 specifies undeclared variable
> > > `gl_LightModel' @ 0xdb83670
> > 
> > I created a piglit test case, glsl-light-model.c, that I thought might
> > reproduce this, but it does not.  Could you run with MESA_GLSL=dump and attach
> > the output?
> 
> I'll try to run today's piglet snapshot, but every time I do, it ends up GPU
> resetting causing me to need to restart laptop

Mesa DRI version info (this is about a week old code from git master)

OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Mobile IntelĀ® GM45 Express Chipset GEM 20100330 DEVELOPMENT 
OpenGL version string: 2.1 Mesa 7.9-devel
OpenGL shading language version string: 1.20

here is output:

$ MESA_GLSL=dump ./glsl-light-model 
GLSL source for shader 1:
void main()
{
        gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}

GLSL IR for shader 1:
(
(declare (out ) vec4 gl_Position@0x2356a30)
(declare (out ) float gl_PointSize@0x2356c40)
(declare (in ) vec4 gl_Vertex@0x2356e70)
(declare (in ) vec3 gl_Normal@0x23570a0)
(declare (in ) vec4 gl_Color@0x23572d0)
(declare (in ) vec4 gl_SecondaryColor@0x2357500)
(declare (in ) vec4 gl_MultiTexCoord0@0x2357730)
(declare (in ) vec4 gl_MultiTexCoord1@0x2357960)
(declare (in ) vec4 gl_MultiTexCoord2@0x2357b90)
(declare (in ) vec4 gl_MultiTexCoord3@0x2357dc0)
(declare (in ) vec4 gl_MultiTexCoord4@0x2357ff0)
(declare (in ) vec4 gl_MultiTexCoord5@0x2358220)
(declare (in ) vec4 gl_MultiTexCoord6@0x2358450)
(declare (in ) vec4 gl_MultiTexCoord7@0x2358680)
(declare (in ) float gl_FogCoord@0x23588b0)
(declare (out ) vec4 gl_ClipVertex@0x2358ae0)
(declare (out ) vec4 gl_FrontColor@0x2358d10)
(declare (out ) vec4 gl_BackColor@0x2358f40)
(declare (out ) vec4 gl_FrontSecondaryColor@0x2359170)
(declare (out ) vec4 gl_BackSecondaryColor@0x23593a0)
(declare (out ) float gl_FogFragCoord@0x23595d0)
(declare (uniform ) mat4 gl_ModelViewMatrix@0x2359800)
(declare (uniform ) mat4 gl_ProjectionMatrix@0x2359a30)
(declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x2359c60)
(declare (uniform ) mat3 gl_NormalMatrix@0x2359e30)
(declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x235a060)
(declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x235a230)
(declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x235a400)
(declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x235a5d0)
(declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x235a7a0)
(declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x235a970)
(declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x235ab40)
(declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x235ad10)
(declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x235aee0)
(declare (uniform ) float gl_NormalScale@0x235b110)
(declare (uniform ) gl_LightModelParameters gl_LightModel@0x235b340)
(declare () int gl_MaxLights@0x235b570)
(declare () int gl_MaxClipPlanes@0x235b880)
(declare () int gl_MaxTextureUnits@0x235bb90)
(declare () int gl_MaxTextureCoords@0x235bea0)
(declare () int gl_MaxVertexAttribs@0x235c1b0)
(declare () int gl_MaxVertexUniformComponents@0x235c4c0)
(declare () int gl_MaxVaryingFloats@0x235c7f0)
(declare () int gl_MaxVertexTextureImageUnits@0x235cb00)
(declare () int gl_MaxCombinedTextureImageUnits@0x235ce30)
(declare () int gl_MaxTextureImageUnits@0x235d160)
(declare () int gl_MaxFragmentUniformComponents@0x235d470)
(declare (uniform ) (array mat4 8) gl_TextureMatrix@0x235dd50)
(declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x235df80)
(declare (uniform ) (array vec4 6) gl_ClipPlane@0x235e340)
(declare (uniform ) gl_PointParameters gl_Point@0x235e570)
(declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x235e7a0)
(declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x235e9d0)
(declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x235eda0)
(declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x235efd0)
(declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x235f220)
(declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x235f610)
(declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x235f840)
(declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x235fc00)
(declare (uniform ) (array vec4 8) gl_EyePlaneS@0x235fe30)
(declare (uniform ) (array vec4 8) gl_EyePlaneT@0x2360060)
(declare (uniform ) (array vec4 8) gl_EyePlaneR@0x2360290)
(declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x23604c0)
(declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x23606f0)
(declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x2360920)
(declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x2360b50)
(declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x2360d80)
(declare (uniform ) gl_FogParameters gl_Fog@0x2360fb0)
(declare (out ) (array vec4 0) gl_TexCoord@0x2361300)
(declare () int gl_MaxDrawBuffers@0x2361530)
(function main
  (signature void
    (parameters
    )
    (
      (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x2356a30)  (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x2359c60) (var_ref gl_Vertex@0x2356e70) ) ) 
    ))

)


)

GLSL source for shader 2:
void main()
{
        gl_FragColor = gl_LightModel.ambient;
}

GLSL IR for shader 2:
(
(declare (in ) vec4 gl_FragCoord@0x23656a0)
(declare (in ) bool gl_FrontFacing@0x29469c0)
(declare (out ) vec4 gl_FragColor@0x2946ef0)
(declare (out ) float gl_FragDepth@0x292ff40)
(declare (in ) vec4 gl_Color@0x2939f00)
(declare (in ) vec4 gl_SecondaryColor@0x293e310)
(declare (in ) float gl_FogFragCoord@0x2942b20)
(declare (uniform ) mat4 gl_ModelViewMatrix@0x243ab50)
(declare (uniform ) mat4 gl_ProjectionMatrix@0x243ae40)
(declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x243b090)
(declare (uniform ) mat3 gl_NormalMatrix@0x243b2e0)
(declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x243b6b0)
(declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x243b930)
(declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x243bb80)
(declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x243bdd0)
(declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x243c210)
(declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x243c500)
(declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x243c750)
(declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x243c9a0)
(declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x243cde0)
(declare (uniform ) float gl_NormalScale@0x243d060)
(declare (uniform ) gl_LightModelParameters gl_LightModel@0x243d2b0)
(declare () int gl_MaxLights@0x243d500)
(declare () int gl_MaxClipPlanes@0x243dbc0)
(declare () int gl_MaxTextureUnits@0x243e060)
(declare () int gl_MaxTextureCoords@0x243e720)
(declare () int gl_MaxVertexAttribs@0x243ebc0)
(declare () int gl_MaxVertexUniformComponents@0x243f280)
(declare () int gl_MaxVaryingFloats@0x243f720)
(declare () int gl_MaxVertexTextureImageUnits@0x243fd80)
(declare () int gl_MaxCombinedTextureImageUnits@0x24401f0)
(declare () int gl_MaxTextureImageUnits@0x24405c0)
(declare () int gl_MaxFragmentUniformComponents@0x2440990)
(declare (uniform ) (array mat4 8) gl_TextureMatrix@0x2441940)
(declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x2441bc0)
(declare (uniform ) (array vec4 6) gl_ClipPlane@0x2441d40)
(declare (uniform ) gl_PointParameters gl_Point@0x2441f90)
(declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x2442110)
(declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x2442360)
(declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x24424e0)
(declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x24428f0)
(declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x2442b70)
(declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x2442dc0)
(declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x2443010)
(declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x2443450)
(declare (uniform ) (array vec4 8) gl_EyePlaneS@0x24436d0)
(declare (uniform ) (array vec4 8) gl_EyePlaneT@0x2443920)
(declare (uniform ) (array vec4 8) gl_EyePlaneR@0x2443b70)
(declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x2443fb0)
(declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x2444230)
(declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x2444480)
(declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x24446d0)
(declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x2444b10)
(declare (uniform ) gl_FogParameters gl_Fog@0x2444d90)
(declare (in ) (array vec4 0) gl_TexCoord@0x2444fe0)
(declare () int gl_MaxDrawBuffers@0x2445230)
(declare (out ) (array vec4 8) gl_FragData@0x24458f0)
(function main
  (signature void
    (parameters
    )
    (
      (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x2946ef0)  (record_ref (var_ref gl_LightModel@0x243d2b0)  ambient) ) 
    ))

)


)


GLSL IR for linked vertex program 3:
(
(declare (out ) vec4 gl_Position@0x278e370)
(declare (in ) vec4 gl_Vertex@0x2724cf0)
(declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x238c2a0)
(function main
  (signature void
    (parameters
    )
    (
      (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x278e370)  (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2724cf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2724cf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2724cf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x2724cf0) )) ) ) 
    ))

)


)

Mesa IR for linked vertex program 3:
  0: (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x238c2a0)
     MOV TEMP[1], STATE[0];
  1: MOV TEMP[2], STATE[1];
  2: MOV TEMP[3], STATE[2];
  3: MOV TEMP[4], STATE[3];
  4: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2724cf0) )) 
     MUL TEMP[5], TEMP[1], INPUT[0].xxxx;
  5: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2724cf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2724cf0) )) ) 
     MAD TEMP[6], TEMP[2], INPUT[0].yyyy, TEMP[5];
  6: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2724cf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2724cf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2724cf0) )) ) 
     MAD TEMP[7], TEMP[3], INPUT[0].zzzz, TEMP[6];
  7: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2724cf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2724cf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2724cf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x2724cf0) )) ) 
     MAD TEMP[8], TEMP[4], INPUT[0].wwww, TEMP[7];
  8: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x278e370)  (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2724cf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2724cf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2724cf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x238c2a0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x2724cf0) )) ) ) 
     MOV OUTPUT[0], TEMP[8];
  9: END

GLSL IR for linked fragment program 3:
(
(declare (out ) vec4 gl_FragColor@0x2476730)
(declare (uniform ) gl_LightModelParameters gl_LightModel@0x247ee30)
(function main
  (signature void
    (parameters
    )
    (
      (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x2476730)  (record_ref (var_ref gl_LightModel@0x247ee30)  ambient) ) 
    ))

)


)

Mesa IR for linked fragment program 3:
  0: (declare (uniform ) gl_LightModelParameters gl_LightModel@0x247ee30)
     MOV TEMP[1], STATE[0];
  1: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x2476730)  (record_ref (var_ref gl_LightModel@0x247ee30)  ambient) ) 
     MOV OUTPUT[1], TEMP[1];
  2: END
Comment 7 Ian Romanick 2010-09-20 08:33:52 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > (In reply to comment #4)
> > > (In reply to comment #3)
> > > > under gdb:
> > > > 
> > > > ir_dereference_variable @ 0xdc80650 specifies undeclared variable
> > > > `gl_LightModel' @ 0xdb83670
> > > 
> > > I created a piglit test case, glsl-light-model.c, that I thought might
> > > reproduce this, but it does not.  Could you run with MESA_GLSL=dump and attach
> > > the output?
> > 
> > I'll try to run today's piglet snapshot, but every time I do, it ends up GPU
> > resetting causing me to need to restart laptop

I'm sorry I wasn't more clear.  I need MESA_GLSL=dump from the application that's actually crashing, not from the test that doesn't reproduce the bug.
Comment 8 Shawn Starr 2010-09-20 16:38:16 UTC
Created attachment 38830 [details]
GLSL dump

GLSL dump info
Comment 9 Shawn Starr 2010-09-20 16:38:41 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > (In reply to comment #5)
> > > (In reply to comment #4)
> > > > (In reply to comment #3)
> > > > > under gdb:
> > > > > 
> > > > > ir_dereference_variable @ 0xdc80650 specifies undeclared variable
> > > > > `gl_LightModel' @ 0xdb83670
> > > > 
> > > > I created a piglit test case, glsl-light-model.c, that I thought might
> > > > reproduce this, but it does not.  Could you run with MESA_GLSL=dump and attach
> > > > the output?
> > > 
> > > I'll try to run today's piglet snapshot, but every time I do, it ends up GPU
> > > resetting causing me to need to restart laptop
> 
> I'm sorry I wasn't more clear.  I need MESA_GLSL=dump from the application
> that's actually crashing, not from the test that doesn't reproduce the bug.

Here is GLSL dump from game attached...
Comment 10 Aidan Thornton 2011-01-09 06:01:03 UTC
It looks like recent git versions of Mesa have sort of fixed this. Instead of crashing with this error, it instead crashes with the assertion failure described in bug #32240 - but it's still the exact same shader causing the issue.
Comment 11 Shawn Starr 2011-01-09 12:04:21 UTC
We can close this one and move onto Bug #32240 as I don't have issues with light GLSL shaders anymore.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.