Summary: | [bisected SNB]oglc draw-buffers2 failed with 16-wide | ||
---|---|---|---|
Product: | Mesa | Reporter: | fangxun <xunx.fang> |
Component: | Drivers/DRI/i965 | Assignee: | Eric Anholt <eric> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | high | CC: | eric |
Version: | git | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | draw-buffers2(advanced.blending.global) output |
Description
fangxun
2011-04-28 00:04:21 UTC
Thanks for the quick bisect! commit 03b2e0fcdf92c76411a957c3ea898233fb4ce1be Author: Eric Anholt <eric@anholt.net> Date: Fri Apr 29 12:17:02 2011 -0700 i965: Fix fragcoord_w on gen6 with 16-wide. The payload regs can go all the way up to register 60+, so just give them 8 bits to be addressed by instead of 3-4 (which made source_w_reg of 8 end up 0). There's no reason to aggressively pack these fields, as they are just used as compiler information, where being easier to access is probably more important than shaving a byte or two off of the structure. Fixes piglit fragcoord_w. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36649 Created attachment 46389 [details]
draw-buffers2(advanced.blending.global) output
Commit 03b2e0fcdf92c76411a957c3ea898233fb4ce1be fixed piglit shaders/fragcoord_w
and ogles2conform GL/gl_FragCoord/gl_FragCoord_w_frag.test, but
7 oglc draw-buffers2 subcases still fails.
So reopen the bug.
When a bugfix has fixed one testcase but not others (without regressing things itself), please open a new bug instead of reopening with the original report of things that weren't fixed. That's an indication that there were multiple bugs involved, and otherwise it just results in big comment chains and the bug report getting ignored. I'm trying ./oglconform -v 2 -1 draw-buffers2.cpp, and it's not actually running anything. Could you include the command line for running one oglconform test you want this report to be about now? Or, ideally, a minimal testcase for the problem, because oglconform is awful. commit 27b03926618ddcafabb7b61e652fe6458b017b24 seems fix this bug. commit 27b03926618ddcafabb7b61e652fe6458b017b24 Author: Eric Anholt <eric@anholt.net> AuthorDate: Wed May 11 12:43:28 2011 -0700 Commit: Eric Anholt <eric@anholt.net> CommitDate: Wed May 18 13:57:17 2011 -0700 i965/fs: Fix discard and alpha test in 16-wide. As of gen6, alt-mode (which we use) MOVs of floats are not raw -- they'll modify infs/nans. This broke discard and alpha test in 16-wide, where apparently the upper 8 bits of the pixel enables being set were causing the whole value to get trashed upon being moved. Treating the values as UD instead of float makes sure they get preserved. While I'm here, replace the two 8-wide moves of the halves of the header with a single compressed move. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36648 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Verified with mesa master commit d0c6d24a9ebe31b3a805e8f5845fc7e6fa552a98. |
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.