This was kind of an abuse of p->compressed, dataport send message instructions are always uncompressed. Use the current execution size instead since p->compressed is on its way out. --- src/mesa/drivers/dri/i965/brw_eu_emit.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c index a649206..10cbbe8 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_emit.c +++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c @@ -2886,9 +2886,11 @@ brw_surface_payload_size(struct brw_codegen *p, bool has_simd4x2, bool has_simd16) { - if (has_simd4x2 && brw_inst_access_mode(p->devinfo, p->current) == BRW_ALIGN_16) + if (has_simd4x2 && + brw_inst_access_mode(p->devinfo, p->current) == BRW_ALIGN_16) return 1; - else if (has_simd16 && p->compressed) + else if (has_simd16 && + brw_inst_exec_size(p->devinfo, p->current) == BRW_EXECUTE_16) return 2 * num_channels; else return num_channels; @@ -2907,7 +2909,7 @@ brw_set_dp_untyped_atomic_message(struct brw_codegen *p, if (devinfo->gen >= 8 || devinfo->is_haswell) { if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) { - if (!p->compressed) + if (brw_inst_exec_size(devinfo, p->current) == BRW_EXECUTE_8) msg_control |= 1 << 4; /* SIMD8 mode */ brw_inst_set_dp_msg_type(devinfo, insn, @@ -2920,7 +2922,7 @@ brw_set_dp_untyped_atomic_message(struct brw_codegen *p, brw_inst_set_dp_msg_type(devinfo, insn, GEN7_DATAPORT_DC_UNTYPED_ATOMIC_OP); - if (!p->compressed) + if (brw_inst_exec_size(devinfo, p->current) == BRW_EXECUTE_8) msg_control |= 1 << 4; /* SIMD8 mode */ } @@ -2968,7 +2970,7 @@ brw_set_dp_untyped_surface_read_message(struct brw_codegen *p, unsigned msg_control = 0xf & (0xf << num_channels); if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) { - if (p->compressed) + if (brw_inst_exec_size(devinfo, p->current) == BRW_EXECUTE_16) msg_control |= 1 << 4; /* SIMD16 mode */ else msg_control |= 2 << 4; /* SIMD8 mode */ @@ -3012,7 +3014,7 @@ brw_set_dp_untyped_surface_write_message(struct brw_codegen *p, unsigned msg_control = 0xf & (0xf << num_channels); if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) { - if (p->compressed) + if (brw_inst_exec_size(devinfo, p->current) == BRW_EXECUTE_16) msg_control |= 1 << 4; /* SIMD16 mode */ else msg_control |= 2 << 4; /* SIMD8 mode */ -- 2.7.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev