From 5fc1562a7215c63b40f22f0320f458387e61e9b5 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Fri, 3 Jan 2020 12:22:38 +0100 Subject: [PATCH] zink: avoid incorrect vector-construction Part-of: --- src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 5ed0d0ba6b8..bb916cf7a98 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 @@ -1462,7 +1462,7 @@ emit_tex(struct ntv_context *ctx, nir_tex_instr *tex) return; } - if (proj) { + if (proj && coord_components > 0) { SpvId constituents[coord_components + 1]; if (coord_components == 1) constituents[0] = coord; @@ -1506,7 +1506,7 @@ emit_tex(struct ntv_context *ctx, nir_tex_instr *tex) spirv_builder_emit_decoration(&ctx->builder, result, SpvDecorationRelaxedPrecision); - if (dref) { + if (dref && nir_dest_num_components(tex->dest) > 1) { SpvId components[4] = { result, result, result, result }; result = spirv_builder_emit_composite_construct(&ctx->builder, dest_type, -- 2.30.2