diff options
author | Francisco Jerez <currojerez@riseup.net> | 2016-05-27 23:28:46 -0700 |
---|---|---|
committer | Francisco Jerez <currojerez@riseup.net> | 2016-05-27 23:28:46 -0700 |
commit | 646213168ed1d2427f30cb92e783910a319cdbb4 (patch) | |
tree | 86153712ac960f6a686825b518d18d455576155c | |
parent | 492286e90b4fe96ee247e88181446f7674fc8254 (diff) |
i965/eu: Use current exec size instead of p->compressed in surface message generation.
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.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_eu_emit.c | 14 |
1 files 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 2982faace45..5536a8ebc50 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_emit.c +++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c @@ -2887,9 +2887,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; @@ -2908,7 +2910,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, @@ -2921,7 +2923,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 */ } @@ -2969,7 +2971,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 */ @@ -3013,7 +3015,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 */ |