Mesa (master): i965/fs: Properly handle explicit depth in SIMD16 with dual-source blend

Jason Ekstrand jekstrand at kemper.freedesktop.org
Thu May 28 20:35:54 UTC 2015


Module: Mesa
Branch: master
Commit: 8bbe7fa7a853d8ebf69e5d2d0fdc4343a20b638f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8bbe7fa7a853d8ebf69e5d2d0fdc4343a20b638f

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Mon May 25 09:31:55 2015 -0700

i965/fs: Properly handle explicit depth in SIMD16 with dual-source blend

Cc: "10.6" <mesa-stable at lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90629
Tested-by: Markus Wick <markus at selfnet.de>
Reviewed-by: Matt Turner <mattst88 at gmail.com>

---

 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index ead7768..314136c 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -3711,7 +3711,11 @@ fs_visitor::emit_single_fb_write(fs_reg color0, fs_reg color1,
       if (prog->OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) {
 	 /* Hand over gl_FragDepth. */
 	 assert(this->frag_depth.file != BAD_FILE);
-         sources[length] = this->frag_depth;
+         if (exec_size < dispatch_width) {
+            sources[length] = half(this->frag_depth, use_2nd_half);
+         } else {
+            sources[length] = this->frag_depth;
+         }
       } else {
 	 /* Pass through the payload depth. */
          sources[length] = fs_reg(brw_vec8_grf(payload.source_depth_reg, 0));




More information about the mesa-commit mailing list