Bug 5815

Summary: HW TCL breaks Neverwinter Nights
Product: Mesa Reporter: Tilman Sauerbeck <tilman>
Component: Drivers/DRI/r300Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: glisse
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
i915 platform: i915 features:
Attachments: Suggested patch

Description Tilman Sauerbeck 2006-02-06 03:53:51 UTC
The change in revision 1.45 of r300_context.c makes Neverwinter Nights crash
reproducably in some scenes.

To reproduce:
Create a new character and choose the monk class. When you customize the
character, try to switch to another set of clothes, and it should crash.

I've ran NWN with bugle; these are the last few GL calls NWN does before it crashes:

trace.call: glDisable(GL_ALPHA_TEST)
trace.call: glBindTexture(GL_TEXTURE_2D, 131)

When I reversed the offending diff to make it work again, the following two
calls showed up in the log (after the calls above):

trace.call: glEnable(GL_TEXTURE_GEN_S)
trace.call: glEnable(GL_TEXTURE_GEN_T)

No clue whether it means anything, but the gloss and texcyl demos don't crash (I
tried them cause I noticed they were also doing glTexGeni calls with the same
Comment 1 Tilman Sauerbeck 2006-02-11 04:39:58 UTC
This was fixed by commit 1.43 of r300_vertexprog.c.
Comment 2 Tilman Sauerbeck 2006-02-11 11:25:06 UTC
This issue isn't fixed. The exit() call in the following code block in
r300_vertexprog.c causes the "crash":

		case OPCODE_ARL:
		case OPCODE_RCC:
			fprintf(stderr, "Dont know how to handle op %d yet\n", vpi->Opcode);

where vpi->Opcode is OPCODE_ARL in my case. It's worth noting that
mesa_vp->Base.NumInstructions is zero.
Comment 3 Tilman Sauerbeck 2006-02-12 05:52:12 UTC
Created attachment 4598 [details] [review]
Suggested patch

NumInstructions was zero because of bug #5864, so the attached bugs works
Comment 4 Tilman Sauerbeck 2006-02-17 07:05:31 UTC
Fixed by revision 1.44 of r300_vertexprog.c.
Comment 5 Adam Jackson 2009-08-24 12:23:41 UTC
Mass version move, cvs -> git

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.