summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRohan Garg <rohan.garg@intel.com>2022-07-19 11:40:04 +0200
committerJordan Justen <jordan.l.justen@intel.com>2024-03-29 23:35:35 -0700
commit7e4b94a39944be33b0cec6e1b9a847ad600686ee (patch)
treed0bf9277e9768ac507baa8c40d43f2293e37b5bf
parentc45a2bedf3dcc1c1c341e7b9d44f9e72fa68e88d (diff)
intel/brw: Lower DWORD scattered read writes to lsc
Rework: * Francisco Jerez: Rebase on 07b9bfacc789 ("intel/compiler: Move logical-send lowering to a separate file") * Jordan: Move SHADER_OPCODE_DWORD_SCATTERED_*_LOGICAL from previous patch, as it seems to make more sense here. * Jordan: Change `devinfo->has_lsc` ?: to if/else as suggested by idr Signed-off-by: Rohan Garg <rohan.garg@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
-rw-r--r--src/intel/compiler/brw_lower_logical_sends.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/intel/compiler/brw_lower_logical_sends.cpp b/src/intel/compiler/brw_lower_logical_sends.cpp
index 45c5455e3e6..63d6f8b97ab 100644
--- a/src/intel/compiler/brw_lower_logical_sends.cpp
+++ b/src/intel/compiler/brw_lower_logical_sends.cpp
@@ -1762,6 +1762,7 @@ lower_lsc_surface_logical_send(const fs_builder &bld, fs_inst *inst)
break;
}
case SHADER_OPCODE_BYTE_SCATTERED_READ_LOGICAL:
+ case SHADER_OPCODE_DWORD_SCATTERED_READ_LOGICAL:
num_components = 1;
has_dest = true;
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD,
@@ -1772,6 +1773,7 @@ lower_lsc_surface_logical_send(const fs_builder &bld, fs_inst *inst)
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
break;
case SHADER_OPCODE_BYTE_SCATTERED_WRITE_LOGICAL:
+ case SHADER_OPCODE_DWORD_SCATTERED_WRITE_LOGICAL:
num_components = 1;
has_dest = false;
inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE,
@@ -2797,14 +2799,14 @@ brw_fs_lower_logical_sends(fs_visitor &s)
case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL:
case SHADER_OPCODE_BYTE_SCATTERED_READ_LOGICAL:
case SHADER_OPCODE_BYTE_SCATTERED_WRITE_LOGICAL:
- if (devinfo->has_lsc) {
- lower_lsc_surface_logical_send(ibld, inst);
- break;
- }
- FALLTHROUGH;
-
case SHADER_OPCODE_DWORD_SCATTERED_READ_LOGICAL:
case SHADER_OPCODE_DWORD_SCATTERED_WRITE_LOGICAL:
+ if (devinfo->has_lsc)
+ lower_lsc_surface_logical_send(ibld, inst);
+ else
+ lower_surface_logical_send(ibld, inst);
+ break;
+
case SHADER_OPCODE_TYPED_SURFACE_READ_LOGICAL:
case SHADER_OPCODE_TYPED_SURFACE_WRITE_LOGICAL:
case SHADER_OPCODE_TYPED_ATOMIC_LOGICAL: