Summary: | Blender line rendering broken after removing XY clipping of lines | ||
---|---|---|---|
Product: | Mesa | Reporter: | Matti Hämäläinen <ccr> |
Component: | Drivers/DRI/i965 | Assignee: | Kenneth Graunke <kenneth> |
Status: | RESOLVED FIXED | QA Contact: | Intel 3D Bugs Mailing List <intel-3d-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | kenneth |
Version: | 13.0 | Keywords: | bisected, regression |
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | |||
Bug Blocks: | 99517 |
Description
Matti Hämäläinen
2017-01-10 04:03:43 UTC
Was bored, so I did the bisecting already. The culprit seems to be this commit in Mesa GIT: 88d28aa4d9edec33ef7bcf1f56b77fbb756a24f8 "i965: Stop XY clipping point and line primitives." Thanks for the bisect! I can confirm the bug on Haswell. As another data point, Skylake seems to be working OK... This patch seems to fix it: https://lists.freedesktop.org/archives/mesa-dev/2017-January/140521.html Tested the patch (without any changes suggested by Chris, tho), and it is working on my Haswell. Should be fixed by: commit ece0e535a44c228dd994861592deb155c14740d8 Author: Kenneth Graunke <kenneth@whitecape.org> Date: Wed Jan 11 21:38:52 2017 -0800 i965: Always scissor on Gen6-7.5 instead of disabling guardband. Previously we disabled the guardband when the viewport was smaller than the framebuffer on Gen6-7.5, to prevent portions of primitives from being draw outside of the viewport. On Gen8+, we relied on the viewport extents test to effectively scissor this away for us. We can simply always enable scissoring instead. We already include the viewport in the scissor rectangle, so this will effectively do the viewport extents test for us. (The only difference is that the scissor rectangle doesn't support sub-pixel values. I think that's okay.) Given that the viewport extents test is essentially a second scissor, and is enabled for basically all 3D drawing on Gen8+, it stands to reason that scissoring is cheap. Enabling the guardband reduces the cost of clipping, which is expensive. The Windows driver appears to never disable guardband clipping, and appears to use scissoring in this case. I don't know if they leave it on universally though. This fixes misrendering in Blender, where the "floor plane" grid lines started rendering at wrong angles after I disabled XY clipping of line primitives. Enabling the guardband seems to solve the issue. Cc: "17.0" <mesa-stable@lists.freedesktop.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99339 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> or at least the series including that. This will be in Mesa 17.0. |
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.