Bug 91726 - R600 asserts in tgsi_cmp/make_src_for_op3
Summary: R600 asserts in tgsi_cmp/make_src_for_op3
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: git
Hardware: x86 (IA32) All
: medium major
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-22 21:12 UTC by iive
Modified: 2015-08-23 07:41 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Four shaders causing the problem in TGSI code. Created by Nine. Included backtraces by winedbg. (40.80 KB, text/plain)
2015-08-22 21:12 UTC, iive
Details

Description iive 2015-08-22 21:12:55 UTC
Created attachment 117866 [details]
Four shaders causing the problem in TGSI code. Created by Nine. Included backtraces by winedbg.

The exact error message is:
---
 r600_shader.c:4891: tgsi_make_src_for_op3: Assertion `temp!=0' failed.
...
  4 0x7dddf84c tgsi_make_src_for_op3+0x66(ctx=0xc9d930, temp=0, chan=0, bc_src=0xc9d120, shader_src=0xc9e3e0) [/tmp/mesa-11.0.99/src/gallium/drivers/r600/r600_shader.c:4891] in d3dadapter9.so.1 (0x00000000)
  5 0x7dddf9fd tgsi_cmp+0xeb(ctx=0xc9d930) [/tmp/mesa-11.0.99/src/gallium/drivers/r600/r600_shader.c:6154] in d3dadapter9.so.1 (0x00c9d930)
  6 0x7dde633a r600_shader_from_tgsi+0xb6d(rctx=0x7cf0eb50, pipeshader=<is not available>, key={ps={nr_cbufs=0x2, color_two_side=0, alpha_to_one=0}, vs={prim_id_out=0x2, as_es=0, as_gs_a=0}}) [/tmp/mesa-11.0.99/src/gallium/drivers/r600/r600_shader.c:2199] in d3dadapter9.so.1 (0x6a8d4c00)
---

My hardware is Radeon HD5670 (Redwood). I've used Mesa git807b1e5b05dacd46b5f563f5c6e561e660a2872e.

I'm attaching a file containing 4 different shaders triggering this issue. It's created by running 4 different trace samples (of the games BorderlandsPreSequel, FullMojo, WorldOfTanks, Prototype2). Then extracting the last shader. In all cases the last shader is only in TGSI code, no R600 compiled version is available and R600_DEBUG=nosb doesn't workaround this issue.

The issue is reproducible only with Nine. The native wined3d opengl wrapper seems to work fine.
That's why I've first reported the issue to the iXit tracker:
https://github.com/iXit/Mesa-3D/issues/131

To reproduce the issue you'd need Mesa git compiled with Nine support; Wine patched with iXit Nine; apitrace for windows (pre-build available at their download page); some of the trace files from the ixit ftp or the original game. "World of Tanks" is free2play (I haven't tried it myself yet).

If you need more info, feel free to ask me.
Comment 1 iive 2015-08-23 07:41:29 UTC
This bug have been fixed by:

http://cgit.freedesktop.org/mesa/mesa/commit/?id=50932268aad0cc21511f370793e77c76e038bd06

All samples work now. So far, no regressions.


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.