diff --git a/.pick_status.json b/.pick_status.json index 224ad7ef367..ced5a2ece8e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -364,7 +364,7 @@ "description": "zink: also declare int size caps inline with signed int type usage", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "854fd242faf00bf68555dce10fb0ae98a3ab34c0" }, diff --git a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c index 7ad376799d7..557fbfa6001 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c +++ b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c @@ -1294,6 +1294,12 @@ SpvId spirv_builder_type_int(struct spirv_builder *b, unsigned width) { uint32_t args[] = { width, 1 }; + if (width == 8) + spirv_builder_emit_cap(b, SpvCapabilityInt8); + else if (width == 16) + spirv_builder_emit_cap(b, SpvCapabilityInt16); + else if (width == 64) + spirv_builder_emit_cap(b, SpvCapabilityInt64); return get_type_def(b, SpvOpTypeInt, args, ARRAY_SIZE(args)); }