Bugzilla – Bug 61317
[IVB] corrupt rendering with UBOs
Last modified: 2013-04-22 23:36:56 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.
3.0 Mesa 9.2-devel (git-0a82828)
Created attachment 75383 [details]
apitrace dump using glUniform
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
Created attachment 75386 [details]
framebuffer contect using glUniform
It is fixed by these patches:
Author: Eric Anholt <firstname.lastname@example.org>
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.
Reviewed-by: Kenneth Graunke <email@example.com>
It should get cherry-picked to stable in the next round.
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.
To fix our MSAA issues, I mark all varying variables as centroid. Now dithering is very common:
Seems to be fixed on current versions. thx :-)