Summary: | Lots of ARB_vertex_program/fragment_program parser errors in ETQW (if GLSL is unavailable) | ||
---|---|---|---|
Product: | Mesa | Reporter: | Fabio Pedretti <pedretti.fabio> |
Component: | Drivers/DRI/r300 | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED WONTFIX | QA Contact: | |
Severity: | major | ||
Priority: | medium | CC: | idr |
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
etqw console output + gdb backtrace
typescript game output 'glxinfo -l' when compiling mesa with "--enable-debug" game output with r300c |
Description
Fabio Pedretti
2009-12-11 07:36:17 UTC
Thanks to mishandling of DOS line endings, that shader snippet doesn't include the actual error. :( Could you run under GDB, and put a breakpoint at yyerror. When it gets hit, 'up' to _mesa_parse_arb_program and print all of str. The output of 'glxinfo -l | grep GL_MAX_TEXTURE_' would also be helpful. My guess is that the number of texture image units and / or texture coordinates units is being set in a weird way that is either making ET:QW or the fragment program compiler do the wrong thing. This should be easy to fix. The other error seems to be a mishandling of out-of-memory conditions in the VBO code. (In reply to comment #1) > Thanks to mishandling of DOS line endings, that shader snippet doesn't include > the actual error. :( Could you run under GDB, and put a breakpoint at yyerror. > When it gets hit, 'up' to _mesa_parse_arb_program and print all of str. #2 0x04105ec2 in _mesa_parse_arb_program (ctx=0x9ce40b8, target=34820, str=0x9e3900 "!!ARBfp1.0\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\nOPTION ARB_precision_hint_fastest;\r\n\r\nTEMP\tR0, R1, color, localNormal, worldNormal, ambient, localAmbient, specLook, diffuse;\r\n\r\nPARAM\tsubOne = { -1, -1, -1, -"..., len=3194, state=0xbfff87f4) at program_parse.y:2638 2638 in program_parse.y > The output of 'glxinfo -l | grep GL_MAX_TEXTURE_' would also be helpful. $ glxinfo -l | grep GL_MAX_TEXTURE_ Mesa: CPU vendor: GenuineIntel Mesa: CPU name: Genuine Intel(R) CPU T2600 @ 2.16GHz Mesa: Mesa 7.8-devel DEBUG build Dec 13 2009 18:40:27 Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable Mesa: MMX cpu detected. Mesa: SSE cpu detected. Mesa: Not testing OS support for SSE, leaving enabled. Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) GL_MAX_TEXTURE_STACK_DEPTH = 10 GL_MAX_TEXTURE_SIZE = 4096 GL_MAX_TEXTURE_UNITS_ARB = 8 GL_MAX_TEXTURE_LOD_BIAS_EXT = 16 GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 16 Btw, are all those Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) meaningful (glxinfo bug?) or should I just ignore them? Ian, any news on this? (In reply to comment #2) > (In reply to comment #1) > > Thanks to mishandling of DOS line endings, that shader snippet doesn't include > > the actual error. :( Could you run under GDB, and put a breakpoint at yyerror. > > When it gets hit, 'up' to _mesa_parse_arb_program and print all of str. > > #2 0x04105ec2 in _mesa_parse_arb_program (ctx=0x9ce40b8, target=34820, > str=0x9e3900 > "!!ARBfp1.0\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\nOPTION > ARB_precision_hint_fastest;\r\n\r\nTEMP\tR0, R1, color, localNormal, > worldNormal, ambient, localAmbient, specLook, diffuse;\r\n\r\nPARAM\tsubOne = { > -1, -1, -1, -"..., len=3194, > state=0xbfff87f4) at program_parse.y:2638 > 2638 in program_parse.y I actually need *all* of the program. :) Try this, run 'script'. Run etqw in GDB again. As before put a breakpoint at yyerror. When it gets hit, 'up' to _mesa_parse_arb_program. Then do 'printf "%s", str'. Quit out of GDB, and ^D to exit script. Attach the generate typescript file. For some reason ID games to weird stuff when output is redirected, so it's possible this won't work. If it doesn't work, just run GDB as before, do the printf above, and copy-and-paste the output to an attachment. > > The output of 'glxinfo -l | grep GL_MAX_TEXTURE_' would also be helpful. > > $ glxinfo -l | grep GL_MAX_TEXTURE_ > Mesa: CPU vendor: GenuineIntel > Mesa: CPU name: Genuine Intel(R) CPU T2600 @ 2.16GHz > Mesa: Mesa 7.8-devel DEBUG build Dec 13 2009 18:40:27 > Mesa warning: couldn't open libtxc_dxtn.so, software DXTn > compression/decompression unavailable > Mesa: MMX cpu detected. > Mesa: SSE cpu detected. > Mesa: Not testing OS support for SSE, leaving enabled. > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > GL_MAX_TEXTURE_STACK_DEPTH = 10 > GL_MAX_TEXTURE_SIZE = 4096 > GL_MAX_TEXTURE_UNITS_ARB = 8 > GL_MAX_TEXTURE_LOD_BIAS_EXT = 16 > GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 16 > > Btw, are all those > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > meaningful (glxinfo bug?) or should I just ignore them? These messages are usually produced when glxinfo tries to query limits related to fragment programs when the driver does not support fragment programs. Could you attach the full output of 'glxinfo -l'? Created attachment 32524 [details] typescript game output > I actually need *all* of the program. :) Try this, run 'script'. Run etqw in > GDB again. As before put a breakpoint at yyerror. When it gets hit, 'up' to > _mesa_parse_arb_program. Then do 'printf "%s", str'. Quit out of GDB, and ^D > to exit script. Attach the generate typescript file. Done. Created attachment 32525 [details] 'glxinfo -l' when compiling mesa with "--enable-debug" > These messages are usually produced when glxinfo tries to query limits related > to fragment programs when the driver does not support fragment programs. Could > you attach the full output of 'glxinfo -l'? Note that these "Mesa: User error" messages only appears when compiling with "--enable-debug" and this also triggers bug 25706. > > $ glxinfo -l | grep GL_MAX_TEXTURE_ > > Mesa: CPU vendor: GenuineIntel > > Mesa: CPU name: Genuine Intel(R) CPU T2600 @ 2.16GHz > > Mesa: Mesa 7.8-devel DEBUG build Dec 13 2009 18:40:27 > > Mesa warning: couldn't open libtxc_dxtn.so, software DXTn > > compression/decompression unavailable > > Mesa: MMX cpu detected. > > Mesa: SSE cpu detected. > > Mesa: Not testing OS support for SSE, leaving enabled. > > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > > GL_MAX_TEXTURE_STACK_DEPTH = 10 > > GL_MAX_TEXTURE_SIZE = 4096 > > GL_MAX_TEXTURE_UNITS_ARB = 8 > > GL_MAX_TEXTURE_LOD_BIAS_EXT = 16 > > GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 16 > > > > Btw, are all those > > Mesa: User error: GL_INVALID_ENUM in glGetProgramivARB(pname) > > meaningful (glxinfo bug?) or should I just ignore them? > > These messages are usually produced when glxinfo tries to query limits related > to fragment programs when the driver does not support fragment programs. Could > you attach the full output of 'glxinfo -l'? > The glxinfo 'User error' are now fixed with: http://cgit.freedesktop.org/mesa/mesa/commit/?id=52cc3b03c3950cd66f9d976b2a3ae9f89dc4a97b The ETQW game still has the program errors as attached to comment 5. ETQW still shows errors as in comment #5 with current mesa with both r300 and swrast but not with r300g and swrastg. (In reply to comment #8) > ETQW still shows errors as in comment #5 with current mesa with both r300 and > swrast but not with r300g and swrastg. Update: - r300 shows the errors of comment #5; - swrast works fine; - r300g works fine; - swrastg crashes in a different way; (In reply to comment #9) > (In reply to comment #8) > > ETQW still shows errors as in comment #5 with current mesa with both r300 and > > swrast but not with r300g and swrastg. > > Update: > - r300 shows the errors of comment #5; > - swrast works fine; > - r300g works fine; > - swrastg crashes in a different way; Is this still unresolved? I can't reproduce this with current Mesa git and GLSL disabled. Closing as WORKSFORME. Created attachment 45469 [details] game output with r300c (In reply to comment #11) > I can't reproduce this with current Mesa git and GLSL disabled. Closing as > WORKSFORME. The game loads fine now on swrast/swrastg and r300c/r300g all with mesa from git master up to a26121f37530619610a78a5fbe5ef87e44047fda. However on r300c it still showing errors. Output is attached. Maybe it's just a r300 specific error. I saw that you use the version 1.4. You should try with the latest one (1.5). (In reply to comment #13) > I saw that you use the version 1.4. > You should try with the latest one (1.5). The attached log says Running in restricted mode. which means it's the demo, for which there is no 1.5 patch. The 1.5 changelog doesn't say anything about graphics bug fixes, and judging from the log the error seems to be in r300c (I've also seen this until mesa 7.9), so I think there is no need to re-test it with 1.5. Now that only 7.10 (and maybe 7.9) seems to be maintained as a stable branch, which has r300g by default, this bug is obsolete IMHO. |
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.