From 949faebea49a0b0d75fe4fe7fca98343c3c01e15 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Thu, 28 Nov 2024 16:53:39 +0800 Subject: [PATCH] zink: do not set transform feedback bits when not available Currently the list of buffer usage bits specified is hardcoded with transform feedback bits, which leads to a validation layer error report with ID VUID-VkBufferCreateInfo-None-09499 when EXT_transform_feedback is not available. Only set these bits when EXT_transform_feedback extension is really available to suppress this error. Cc: mesa-stable Signed-off-by: Icenowy Zheng Reviewed-by: Erik Faye-Lund (cherry picked from commit 70fa598696c6fe2db6e6370a91443a3cb9449db3) Part-of: --- .pick_status.json | 2 +- src/gallium/drivers/zink/zink_resource.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index de915544ffc..31e01feb088 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4,7 +4,7 @@ "description": "zink: do not set transform feedback bits when not available", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 3eb8e266ab9..d09a641b6ca 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -298,9 +298,12 @@ create_bci(struct zink_screen *screen, const struct pipe_resource *templ, unsign VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT | - VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | - VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT | - VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT; + VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT; + + if (screen->info.have_EXT_transform_feedback) { + bci.usage |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT | + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT; + } } if (screen->info.have_KHR_buffer_device_address) bci.usage |= VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT;