diff --git a/src/nouveau/vulkan/nvk_image.c b/src/nouveau/vulkan/nvk_image.c index e218def391e..91523cedd56 100644 --- a/src/nouveau/vulkan/nvk_image.c +++ b/src/nouveau/vulkan/nvk_image.c @@ -8,6 +8,7 @@ #include "nil_format.h" #include "vulkan/util/vk_format.h" +#include "clb097.h" #include "clb197.h" VkFormatFeatureFlags2 @@ -62,8 +63,9 @@ nvk_get_image_format_features(struct nvk_physical_device *pdev, if (nil_format_supports_storage(&pdev->info, p_format)) { features |= VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT | - VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT | VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT; + if (pdev->info.cls_eng3d >= MAXWELL_A) + features |= VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT; } if (p_format == PIPE_FORMAT_R32_UINT || p_format == PIPE_FORMAT_R32_SINT) diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index 5d4f7c81bf1..efe43bb55a6 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -22,6 +22,7 @@ #include "cla097.h" #include "cla0c0.h" #include "cla1c0.h" +#include "clb097.h" #include "clb0c0.h" #include "clb197.h" #include "clb1c0.h" @@ -438,7 +439,7 @@ nvk_get_device_features(const struct nv_device_info *info, .shaderImageGatherExtended = true, .shaderStorageImageExtendedFormats = true, /* TODO: shaderStorageImageMultisample */ - .shaderStorageImageReadWithoutFormat = true, + .shaderStorageImageReadWithoutFormat = info->cls_eng3d >= MAXWELL_A, .shaderStorageImageWriteWithoutFormat = true, .shaderUniformBufferArrayDynamicIndexing = true, .shaderSampledImageArrayDynamicIndexing = true,