Mesa (master): zink: handle nir_texop_texture_samples

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Feb 10 13:11:10 UTC 2021


Module: Mesa
Branch: master
Commit: 802c1afe9c6f31b92d4f6ee2ded7975156139094
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=802c1afe9c6f31b92d4f6ee2ded7975156139094

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Tue Aug 18 17:00:48 2020 -0400

zink: handle nir_texop_texture_samples

this is just a SpvOpImageQuerySamples

Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8947>

---

 src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c
index 75b52db8a5d..78dd437edbe 100644
--- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c
+++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c
@@ -2895,7 +2895,8 @@ emit_tex(struct ntv_context *ctx, nir_tex_instr *tex)
           tex->op == nir_texop_txf_ms ||
           tex->op == nir_texop_txs ||
           tex->op == nir_texop_lod ||
-          tex->op == nir_texop_tg4);
+          tex->op == nir_texop_tg4 ||
+          tex->op == nir_texop_texture_samples);
    assert(tex->texture_index == tex->sampler_index);
 
    SpvId coord = 0, proj = 0, bias = 0, lod = 0, dref = 0, dx = 0, dy = 0,
@@ -3024,6 +3025,13 @@ emit_tex(struct ntv_context *ctx, nir_tex_instr *tex)
       store_dest(ctx, &tex->dest, result, tex->dest_type);
       return;
    }
+   if (tex->op == nir_texop_texture_samples) {
+      SpvId image = spirv_builder_emit_image(&ctx->builder, image_type, load);
+      SpvId result = spirv_builder_emit_unop(&ctx->builder, SpvOpImageQuerySamples,
+                                             dest_type, image);
+      store_dest(ctx, &tex->dest, result, tex->dest_type);
+      return;
+   }
 
    if (proj && coord_components > 0) {
       SpvId constituents[coord_components + 1];



More information about the mesa-commit mailing list