From ae7dacac62ae05cf1ea7df3c75021ecae73183fd Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 11 May 2023 09:35:39 -0400 Subject: [PATCH] zink: also declare int size caps inline with signed int type usage Fixes: 854fd242faf ("zink: declare int/float size caps inline with type usage") Part-of: (cherry picked from commit 5d8103b109bcbfe98402f43aecd8f0fd1d6fd815) --- .pick_status.json | 2 +- src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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)); }