diff --git a/.pick_status.json b/.pick_status.json index 62689687c40..c7588f67f9c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -424,7 +424,7 @@ "description": "zink/nir-to-spirv: Make sure sampleid for InterpolateAtSample is int", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "9f6be8effb43fcd4ce2fd00045bc6244ddf63529", "notes": null 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 7986e0a6fc3..9d3c97085e6 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 @@ -2739,6 +2739,8 @@ emit_interpolate(struct ntv_context *ctx, nir_intrinsic_instr *intr) case nir_intrinsic_interp_deref_at_sample: op = GLSLstd450InterpolateAtSample; src1 = get_src(ctx, &intr->src[1], &atype); + if (atype != nir_type_int) + src1 = emit_bitcast(ctx, get_ivec_type(ctx, 32, 1), src1); break; case nir_intrinsic_interp_deref_at_offset: op = GLSLstd450InterpolateAtOffset;