Mesa (master): spirv: add support for bias/lod with OpImageGather
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon May 25 07:25:32 UTC 2020
Module: Mesa
Branch: master
Commit: 41dc3ce449ff6fc47691202ef7c5ee8fa37668c6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=41dc3ce449ff6fc47691202ef7c5ee8fa37668c6
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Wed May 20 16:24:18 2020 +0200
spirv: add support for bias/lod with OpImageGather
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5147>
---
src/compiler/spirv/spirv_to_nir.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index 590f325a4b9..aef1ecdbd00 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -2445,8 +2445,10 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
uint32_t operands = w[idx];
if (operands & SpvImageOperandsBiasMask) {
- vtn_assert(texop == nir_texop_tex);
- texop = nir_texop_txb;
+ vtn_assert(texop == nir_texop_tex ||
+ texop == nir_texop_tg4);
+ if (texop == nir_texop_tex)
+ texop = nir_texop_txb;
uint32_t arg = image_operand_arg(b, w, count, idx,
SpvImageOperandsBiasMask);
(*p++) = vtn_tex_src(b, w[arg], nir_tex_src_bias);
@@ -2454,7 +2456,7 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
if (operands & SpvImageOperandsLodMask) {
vtn_assert(texop == nir_texop_txl || texop == nir_texop_txf ||
- texop == nir_texop_txs);
+ texop == nir_texop_txs || texop == nir_texop_tg4);
uint32_t arg = image_operand_arg(b, w, count, idx,
SpvImageOperandsLodMask);
(*p++) = vtn_tex_src(b, w[arg], nir_tex_src_lod);
More information about the mesa-commit
mailing list