[Mesa-dev] [PATCH] nir/spirv: tg4 requires a sampler

Alex Smith asmith at feralinteractive.com
Tue Nov 7 10:52:48 UTC 2017


Gather operations in both GLSL and SPIR-V require a sampler. Fixes
gathers returning garbage when using separate texture/samplers (on AMD,
was using an invalid sampler descriptor).

Signed-off-by: Alex Smith <asmith at feralinteractive.com>
Cc: "17.2 17.3" <mesa-stable at lists.freedesktop.org>
---
 src/compiler/nir/nir.h            | 1 -
 src/compiler/spirv/spirv_to_nir.c | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 0174c30504..9c804c62bd 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -1214,7 +1214,6 @@ typedef struct {
     *    - nir_texop_txf_ms
     *    - nir_texop_txs
     *    - nir_texop_lod
-    *    - nir_texop_tg4
     *    - nir_texop_query_levels
     *    - nir_texop_texture_samples
     *    - nir_texop_samples_identical
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index 93a515d731..027efab88d 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -1755,6 +1755,7 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
    case nir_texop_txb:
    case nir_texop_txl:
    case nir_texop_txd:
+   case nir_texop_tg4:
       /* These operations require a sampler */
       instr->sampler = nir_deref_var_clone(sampler, instr);
       break;
@@ -1762,7 +1763,6 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
    case nir_texop_txf_ms:
    case nir_texop_txs:
    case nir_texop_lod:
-   case nir_texop_tg4:
    case nir_texop_query_levels:
    case nir_texop_texture_samples:
    case nir_texop_samples_identical:
-- 
2.13.6



More information about the mesa-dev mailing list