Bug 5815 - HW TCL breaks Neverwinter Nights
Summary: HW TCL breaks Neverwinter Nights
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/r300 (show other bugs)
Version: git
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-06 03:53 UTC by Tilman Sauerbeck
Modified: 2009-08-24 12:23 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Suggested patch (838 bytes, patch)
2006-02-12 05:52 UTC, Tilman Sauerbeck
Details | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
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)
trace.call: glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP)
trace.call: glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP)

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
parameters).
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);
			exit(-1);

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
nicely.
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


bug/show.html.tmpl processed on Mar 29, 2017 at 22:52:59.
(provided by the Example extension).