Bug 39941 - [regression] glsl-to-tgsi broke rendering in Fallout 3
Summary: [regression] glsl-to-tgsi broke rendering in Fallout 3
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Mesa core (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-08 12:46 UTC by Sven Arvidsson
Modified: 2011-08-09 10:39 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
broken rendering (186.77 KB, image/jpeg)
2011-08-08 12:46 UTC, Sven Arvidsson
Details
normal rendering (142.61 KB, image/jpeg)
2011-08-08 12:47 UTC, Sven Arvidsson
Details
TGSI output from broken rendering (719.59 KB, application/x-gzip)
2011-08-08 14:56 UTC, Sven Arvidsson
Details
TGSI output from normal rendering (765.43 KB, application/x-gzip)
2011-08-08 14:57 UTC, Sven Arvidsson
Details
patch (1.44 KB, patch)
2011-08-09 06:31 UTC, Henri Verbeet
Details | Splinter Review

Description Sven Arvidsson 2011-08-08 12:46:49 UTC
Created attachment 50039 [details]
broken rendering

The glsl-to-tgsi merge broke rendering in the game Fallout 3 (running in Wine), I confirmed this by reverting the merge. 

Before/after screenshots are attached, but I'm not sure what environment variables I need to set to dump the shaders?
Comment 1 Sven Arvidsson 2011-08-08 12:47:14 UTC
Created attachment 50040 [details]
normal rendering
Comment 2 Henri Verbeet 2011-08-08 13:20:33 UTC
I've seen similar issues in a couple of other applications using Wine as well.
Comment 3 Bryan Cain 2011-08-08 14:25:45 UTC
Can you check out the glsl-to-tgsi branch and bisect it there?  That will give me a better idea of what's causing the problem.
Comment 4 Bryan Cain 2011-08-08 14:40:05 UTC
Also, if you're using r600g, you can dump the TGSI output with the environment variable R600_DUMP_SHADERS=1.  Regardless of the driver, you can also dump the GLSL IR output by setting MESA_GLSL=dump.
Comment 5 Sven Arvidsson 2011-08-08 14:56:42 UTC
Created attachment 50042 [details]
TGSI output from broken rendering

(In reply to comment #4)
> Also, if you're using r600g, you can dump the TGSI output with the environment
> variable R600_DUMP_SHADERS=1.  Regardless of the driver, you can also dump the
> GLSL IR output by setting MESA_GLSL=dump.

Thanks! I'm attaching before/after output from a R600_DUMP_SHADERS=1 run, will try bisecting tomorrow.
Comment 6 Sven Arvidsson 2011-08-08 14:57:29 UTC
Created attachment 50043 [details]
TGSI output from normal rendering
Comment 7 Bryan Cain 2011-08-08 17:26:28 UTC
Thanks, although bisecting the regression in the glsl-to-tgsi branch will probably give more helpful results.

Also, since I've never used R600_DUMP_TGSI before, I now see that in addition to the actual TGSI, it dumps the hardware shader, which is useless to me and clutters the output.  So for doing TGSI dumps in the future, it would probably be best if you instead compiled st/mesa with the ST_DEBUG define (in st_debug.h) set to DEBUG_TGSI.  That should dump only the TGSI.
Comment 8 Henri Verbeet 2011-08-09 06:31:06 UTC
Created attachment 50070 [details] [review]
patch

This patch helps for the issues I see in Wine.
Comment 9 Sven Arvidsson 2011-08-09 07:31:38 UTC
(In reply to comment #8)
> This patch helps for the issues I see in Wine.

It takes care of the problems in Fallout 3 too. Thanks!
Comment 10 Bryan Cain 2011-08-09 10:39:39 UTC
(In reply to comment #8)
> Created an attachment (id=50070) [details]
> patch
> 
> This patch helps for the issues I see in Wine.

I've committed your patch to master as e6c64800cc8.  Thanks!


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.