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

Cc: "10.6" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90629
Tested-by: Markus Wick <markus@selfnet.de>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Jason Ekstrand 2015-05-25 09:31:55 -07:00
parent e354cc9b79
commit 8bbe7fa7a8
1 changed files with 5 additions and 1 deletions

View File

@ -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));