On Kepler and earlier, image loads must get lowered based on the declared
format, since we don't have a SULDP op.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
#include "nil_format.h"
#include "vulkan/util/vk_format.h"
+#include "clb097.h"
#include "clb197.h"
VkFormatFeatureFlags2
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)
#include "cla097.h"
#include "cla0c0.h"
#include "cla1c0.h"
+#include "clb097.h"
#include "clb0c0.h"
#include "clb197.h"
#include "clb1c0.h"
.shaderImageGatherExtended = true,
.shaderStorageImageExtendedFormats = true,
/* TODO: shaderStorageImageMultisample */
- .shaderStorageImageReadWithoutFormat = true,
+ .shaderStorageImageReadWithoutFormat = info->cls_eng3d >= MAXWELL_A,
.shaderStorageImageWriteWithoutFormat = true,
.shaderUniformBufferArrayDynamicIndexing = true,
.shaderSampledImageArrayDynamicIndexing = true,