From da1a3ed2ead1633b9ba7170b3e1fb4c08fa8dc2b Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 31 Aug 2022 15:37:31 -0400 Subject: [PATCH] zink: don't emit illegal interpolation this is not valid for vertex inputs or fragment outputs cc: mesa-stable Reviewed-by: Erik Faye-Lund Reviewed-by: Emma Anholt Part-of: --- src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 6 ++---- 1 file changed, 2 insertions(+), 4 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 a90a47a..247f820 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 @@ -553,6 +553,7 @@ emit_input(struct ntv_context *ctx, struct nir_variable *var) spirv_builder_emit_decoration(&ctx->builder, var_id, SpvDecorationCentroid); else if (var->data.sample) spirv_builder_emit_decoration(&ctx->builder, var_id, SpvDecorationSample); + emit_interpolation(ctx, var_id, var->data.interpolation); } else if (ctx->stage < MESA_SHADER_FRAGMENT) { switch (var->data.location) { HANDLE_EMIT_BUILTIN(POS, Position); @@ -582,8 +583,6 @@ emit_input(struct ntv_context *ctx, struct nir_variable *var) if (var->data.patch) spirv_builder_emit_decoration(&ctx->builder, var_id, SpvDecorationPatch); - emit_interpolation(ctx, var_id, var->data.interpolation); - _mesa_hash_table_insert(ctx->vars, var, (void *)(intptr_t)var_id); assert(ctx->num_entry_ifaces < ARRAY_SIZE(ctx->entry_ifaces)); @@ -631,6 +630,7 @@ emit_output(struct ntv_context *ctx, struct nir_variable *var) ctx->so_output_gl_types[idx] = var->type; ctx->so_output_types[idx] = var_type; } + emit_interpolation(ctx, var_id, var->data.interpolation); } else { if (var->data.location >= FRAG_RESULT_DATA0) { spirv_builder_emit_location(&ctx->builder, var_id, @@ -667,8 +667,6 @@ emit_output(struct ntv_context *ctx, struct nir_variable *var) spirv_builder_emit_component(&ctx->builder, var_id, var->data.location_frac); - emit_interpolation(ctx, var_id, var->data.interpolation); - if (var->data.patch) spirv_builder_emit_decoration(&ctx->builder, var_id, SpvDecorationPatch); -- 2.7.4