aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Faye-Lund <[email protected]>2020-01-03 12:22:38 +0100
committerMarge Bot <[email protected]>2020-01-18 10:45:38 +0000
commit5fc1562a7215c63b40f22f0320f458387e61e9b5 (patch)
treee712e620825276dbc1684b06fd44ba56f3282de8
parent8112240d2931be2d5d572914d159d769888cab2d (diff)
zink: avoid incorrect vector-construction
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3275>
-rw-r--r--src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c4
1 files 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,