diff options
author | Eric Anholt <[email protected]> | 2020-02-05 15:46:40 -0800 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-02-24 18:25:02 +0000 |
commit | 3e16434acdd549f2721efc4ec80dc11fca1321f6 (patch) | |
tree | 09dc1b4424eb1cedf3cebba8986094180ae76afd /src/intel/compiler | |
parent | a7038403204b7f2017cdd390a911f2393a8f6513 (diff) |
nir: Move intel's intrinsic_image_coordinate_components() to core nir.
This is a query that both Intel and freedreno need to do. We can simplify
it a lot with the new glsl_get_sampler_dim_coordinate_components()
Reviewed-by: Kenneth Graunke <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3728>
Diffstat (limited to 'src/intel/compiler')
-rw-r--r-- | src/intel/compiler/brw_fs_nir.cpp | 23 |
1 files changed, 1 insertions, 22 deletions
diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp index 1c07f6fed0f..c602ff55dc4 100644 --- a/src/intel/compiler/brw_fs_nir.cpp +++ b/src/intel/compiler/brw_fs_nir.cpp @@ -4066,27 +4066,6 @@ fs_visitor::get_nir_ssbo_intrinsic_index(const brw::fs_builder &bld, return bld.emit_uniformize(surf_index); } -static unsigned -image_intrinsic_coord_components(nir_intrinsic_instr *instr) -{ - switch (nir_intrinsic_image_dim(instr)) { - case GLSL_SAMPLER_DIM_1D: - return 1 + nir_intrinsic_image_array(instr); - case GLSL_SAMPLER_DIM_2D: - case GLSL_SAMPLER_DIM_RECT: - return 2 + nir_intrinsic_image_array(instr); - case GLSL_SAMPLER_DIM_3D: - case GLSL_SAMPLER_DIM_CUBE: - return 3; - case GLSL_SAMPLER_DIM_BUF: - return 1; - case GLSL_SAMPLER_DIM_MS: - return 2 + nir_intrinsic_image_array(instr); - default: - unreachable("Invalid image dimension"); - } -} - /** * The offsets we get from NIR act as if each SIMD channel has it's own blob * of contiguous space. However, if we actually place each SIMD channel in @@ -4209,7 +4188,7 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr srcs[SURFACE_LOGICAL_SRC_ADDRESS] = get_nir_src(instr->src[1]); srcs[SURFACE_LOGICAL_SRC_IMM_DIMS] = - brw_imm_ud(image_intrinsic_coord_components(instr)); + brw_imm_ud(nir_image_intrinsic_coord_components(instr)); /* Emit an image load, store or atomic op. */ if (instr->intrinsic == nir_intrinsic_image_load || |