Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_fs_emit.cpp | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp index 8176a76..b35d558 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp @@ -151,7 +151,10 @@ fs_visitor::generate_math1_gen6(fs_inst *inst, assert(inst->mlen == 0); - brw_set_compression_control(p, BRW_COMPRESSION_NONE); + bool force_simd8 = intel->gen < 7 || dst.type != BRW_REGISTER_TYPE_F; + + if (force_simd8) + brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_math(p, dst, op, inst->saturate ? BRW_MATH_SATURATE_SATURATE : @@ -160,7 +163,7 @@ fs_visitor::generate_math1_gen6(fs_inst *inst, BRW_MATH_DATA_VECTOR, BRW_MATH_PRECISION_FULL); - if (c->dispatch_width == 16) { + if (c->dispatch_width == 16 && force_simd8) { brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); brw_math(p, sechalf(dst), op, @@ -183,10 +186,13 @@ fs_visitor::generate_math2_gen6(fs_inst *inst, assert(inst->mlen == 0); - brw_set_compression_control(p, BRW_COMPRESSION_NONE); + bool force_simd8 = intel->gen < 7 || dst.type != BRW_REGISTER_TYPE_F; + + if (force_simd8) + brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_math2(p, dst, op, src0, src1); - if (c->dispatch_width == 16) { + if (c->dispatch_width == 16 && force_simd8) { brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); brw_math2(p, sechalf(dst), op, sechalf(src0), sechalf(src1)); brw_set_compression_control(p, BRW_COMPRESSION_COMPRESSED); -- 1.7.6.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev