diff options
author | Jason Ekstrand <[email protected]> | 2019-02-28 08:15:30 -0600 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2019-11-11 17:17:02 +0000 |
commit | 53bfcdeecf4c9632e09ee641d2ca02dd9ec25e34 (patch) | |
tree | 0eb1361a0f6684b5a6fc1474d482b258cbae1839 /src/intel/compiler/brw_fs.h | |
parent | e2297699de8eda49fb2c2c54307b44d4097d0b95 (diff) |
intel/fs: Implement the new load/store_scratch intrinsics
This commit fills in a number of different pieces:
1. We add support to brw_nir_lower_mem_access_bit_sizes to handle the
new intrinsics. This involves simple plumbing work as well as a
tiny bit of extra logic to always scalarize scratch intrinsics
2. Add code to brw_fs_nir.cpp to turn nir_load/store_scratch intrinsics
into byte/dword scattered read/write messages which use the A32
stateless model.
3. Add code to lower_surface_logical_send to handle dword scattered
messages and the A32 stateless model.
Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_fs.h')
-rw-r--r-- | src/intel/compiler/brw_fs.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_fs.h b/src/intel/compiler/brw_fs.h index ede5b0a701c..fd5a1a9071a 100644 --- a/src/intel/compiler/brw_fs.h +++ b/src/intel/compiler/brw_fs.h @@ -228,6 +228,9 @@ public: nir_intrinsic_instr *instr); fs_reg get_nir_ssbo_intrinsic_index(const brw::fs_builder &bld, nir_intrinsic_instr *instr); + fs_reg swizzle_nir_scratch_addr(const brw::fs_builder &bld, + const fs_reg &addr, + bool in_dwords); void nir_emit_intrinsic(const brw::fs_builder &bld, nir_intrinsic_instr *instr); void nir_emit_tes_intrinsic(const brw::fs_builder &bld, @@ -341,6 +344,7 @@ public: int *push_constant_loc; fs_reg subgroup_id; + fs_reg scratch_base; fs_reg frag_depth; fs_reg frag_stencil; fs_reg sample_mask; |