Created attachment 131926 [details]
Screenshot of the problem
- Ubuntu 16.04
- BSW NUC (N3050)
- Latest 3D stack (kernel, X, Mesa)
- GfxBench v4 from gfxbench.com
- Run GfxBench CarChase ("gl_4") test
- Renders fine like on other platforms, and like the other GfxBench tests
- Mountains and some tree trunks are not rendered, bushes hang in the sky
(see attached screenshot)
I'm not sure whether this is a regression, or has this just been broken since Mesa started supporting GL 4.3, and this benchmark started working on other platforms (it uses compute shaders & tessellation). I went back several months and the same issue is visible at least already in mid February.
(There's also some issue with cursor planes on BSW, cursor gets duplicated when you move it, but that's kernel/X problem and I think unrelated.)
Fix to bug 102289 didn't help with this.
(I guess CS is used for post-processing effects in CarChase and this issue is before that.)
CarChase misrendering still happens with the latest mesa git and drm-tip kernel.
(kernel or X cursor plane issue has disappeared in the meanwhile.)
Eero, please bisect this.
- As speculated in first comment, Mesa has never rendered CarChase correctly on BSW.
Here's an abbreviated list of Mesa versions I tested with 4.15 drm-tip kernel (as 2015 & early 2016 kernels had issues on BSW too):
[...CarChase shader compilation fails...]
- a5038427c3 i965: Add tessellation evaluation shaders -> test start fail
- 24be658d13 i965: Add tessellation control shaders -> Mesa build fail
[...month of Mesa build fails due to bool vs. int* mismatch...]
- 13b87e02b9 freedreno/a4xx: Add support for adreno 430 -> Mesa build fail
- 263f829d2e i965/vec4/tcs: Return NULL instead of false in brw_compile_tcs() -> test runs
- mesa-17.0.7 (tested both with 4.15 & Ubuntu 16.04 4.4 kernel)
- mesa git head
CarChase doesn't start with 2015 11.2.0-pre commits, even with tessellation override. When the necessary tessellation support was added in end of Dec 2015, Mesa build was broken, and it took a month until that got fixed. First successfully building Jan 2016 Mesa git commit already shows the issue.
Mesa 11.2.0 is the first release version which can actually start CarChase. It needs GL 4.3 & compute overrides as CarChase requests GL 4.3 context which is officially supported only in Mesa 12.0.0.
Mesa 17.0.0 is the first version that doesn't have additional rendering issues (see screenshot in bug 96743) besides this bug.
Note: I tried applying the Mesa build fix 263f829d2e to 24be658d13 (Add tessellation control shaders), and while that is the first commit that can run CarChase, it doesn't render it correctly at all, tessellation is still too broken. Quite a few fixes to that went in during Jan 2016.
Scratch buffer size fix for bug 104636 doesn't affect this bug.
When asserts are enabled, one gets:
testfw_app: src/intel/common/gen_urb_config.c:152: gen_get_urb_config: Assertion `total_needs <= urb_chunks' failed.
This might explain the misrendering. On details why there aren't enough URBs, see: https://bugs.freedesktop.org/show_bug.cgi?id=108787#c6
The discussion in a newer bug has more analysis than this one.
*** This bug has been marked as a duplicate of bug 108787 ***