Bug 91726

Summary: R600 asserts in tgsi_cmp/make_src_for_op3
Product: Mesa Reporter: iive <ikalvachev>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact: Default DRI bug account <dri-devel>
Severity: major    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Four shaders causing the problem in TGSI code. Created by Nine. Included backtraces by winedbg.

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.