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