From 7026ea71710d9d8fde2e3f70699b5ca53cebc811 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Sun, 21 Feb 2021 12:18:09 -0500 Subject: [PATCH] zink: fix buffer resource usage flags * VK_BUFFER_USAGE_STORAGE_BUFFER_BIT should be enabled always because we might need it * VK_FORMAT_FEATURE* flags need to be used for detection I hate these enums so much. Fixes: 2bfa998960d ("zink: add more usage bits for buffer types") Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_resource.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 6ef422d2246..96d219d5429 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -119,7 +119,8 @@ resource_create(struct pipe_screen *pscreen, bci.size = templ->width0; bci.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | - VK_BUFFER_USAGE_TRANSFER_DST_BIT; + VK_BUFFER_USAGE_TRANSFER_DST_BIT | + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; /* apparently gallium thinks these are the jack-of-all-trades bind types */ if (templ->bind & (PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_QUERY_BUFFER)) { @@ -131,9 +132,7 @@ resource_create(struct pipe_screen *pscreen, VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT; VkFormatProperties props; vkGetPhysicalDeviceFormatProperties(screen->pdev, zink_get_format(screen, templ->format), &props); - if (props.bufferFeatures & VK_BUFFER_USAGE_STORAGE_BUFFER_BIT) - bci.usage |= VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; - if (props.bufferFeatures & VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT) + if (props.bufferFeatures & VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT) bci.usage |= VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT; }