Bug 61317 - [IVB] corrupt rendering with UBOs
[IVB] corrupt rendering with UBOs
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965
Other All
: medium normal
Assigned To: Ian Romanick
Depends on:
  Show dependency treegraph
Reported: 2013-02-22 23:39 UTC by Markus Wick
Modified: 2013-04-22 23:36 UTC (History)
0 users

See Also:
i915 platform:
i915 features:

apitrace dump using ubo (687.56 KB, text/plain)
2013-02-22 23:39 UTC, Markus Wick
apitrace dump using glUniform (610.99 KB, application/octet-stream)
2013-02-22 23:40 UTC, Markus Wick
framebuffer content using ubo (2.53 KB, image/png)
2013-02-22 23:43 UTC, Markus Wick
framebuffer contect using glUniform (1.63 KB, image/png)
2013-02-22 23:43 UTC, Markus Wick

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Wick 2013-02-22 23:39:18 UTC
Created attachment 75382 [details]
apitrace dump using ubo

I switched from glUniform to UBO and get sometimes short black lines. I've made a trimed apitrace dump so that the last call is the corrupted one. 
The expected result will be shown on the other apitrace dump with glUniform (there are many gl errors because of uploading to optimized out uniforms, please ignore them) 

I'll also attach the affected region of the framebuffer.

My specs:
3.0 Mesa 9.2-devel (git-0a82828)
Comment 1 Markus Wick 2013-02-22 23:40:34 UTC
Created attachment 75383 [details]
apitrace dump using glUniform
Comment 2 Markus Wick 2013-02-22 23:43:02 UTC
Created attachment 75385 [details]
framebuffer content using ubo

it's only a small part at the bottom of the framebuffer, but it's the complete rendered part
Comment 3 Markus Wick 2013-02-22 23:43:36 UTC
Created attachment 75386 [details]
framebuffer contect using glUniform
Comment 4 Markus Wick 2013-03-07 07:58:48 UTC
It is fixed by these patches:
Comment 5 Eric Anholt 2013-03-11 19:33:01 UTC
Landed now:

commit 1323772543083dec23baf5a50222bdfc88ff6c3a
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Mar 6 15:58:46 2013 -0800

    i965/fs: Fix broken rendering in large shaders with UBO loads.
    The lowering process creates a new vgrf on gen7 that should be represented
    in live interval analysis.  As-is, it was getting a conflicting allocation
    with gl_FragDepth in the dolphin emulator, producing broken rendering.
    NOTE: This is a candidate for the 9.1 branch.
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61317
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>

It should get cherry-picked to stable in the next round.
Comment 6 Markus Wick 2013-03-17 08:48:14 UTC
I'm sorry, it seems that this bug isn't fixed completely. I still get some dithering on git-346a1b9. Look at the red pixels on the OSD:

The apitrace dump is trimed at the first broken call.
Comment 7 Markus Wick 2013-03-20 09:40:38 UTC
To fix our MSAA issues, I mark all varying variables as centroid. Now dithering is very common:
Comment 8 Markus Wick 2013-04-22 23:36:56 UTC
Seems to be fixed on current versions. thx :-)