From 1f72430bd6749fc0bf990fc0965f1918f2f0e2d3 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:11:50 -0600 Subject: [PATCH] nvk: Move is_storage_image_format to nvk_format.c Part-of: --- src/nouveau/vulkan/nvk_format.c | 51 +++++++++++++++++++++++++++++++++++++++ src/nouveau/vulkan/nvk_format.h | 2 ++ src/nouveau/vulkan/nvk_image.c | 53 +---------------------------------------- 3 files changed, 54 insertions(+), 52 deletions(-) diff --git a/src/nouveau/vulkan/nvk_format.c b/src/nouveau/vulkan/nvk_format.c index 8d17a2d..5680767 100644 --- a/src/nouveau/vulkan/nvk_format.c +++ b/src/nouveau/vulkan/nvk_format.c @@ -10,6 +10,57 @@ #include "vulkan/util/vk_enum_defines.h" #include "vulkan/util/vk_format.h" +bool +nvk_is_storage_image_format(VkFormat vk_format) +{ + /* TODO: This shouldn't be a fixed list */ + + switch (vk_format) { + case VK_FORMAT_R32G32B32A32_UINT: + case VK_FORMAT_R32G32B32A32_SINT: + case VK_FORMAT_R32G32B32A32_SFLOAT: + case VK_FORMAT_R32_UINT: + case VK_FORMAT_R32_SINT: + case VK_FORMAT_R32_SFLOAT: + case VK_FORMAT_R16G16B16A16_UINT: + case VK_FORMAT_R16G16B16A16_SINT: + case VK_FORMAT_R16G16B16A16_SFLOAT: + case VK_FORMAT_R32G32_UINT: + case VK_FORMAT_R32G32_SINT: + case VK_FORMAT_R32G32_SFLOAT: + case VK_FORMAT_R8G8B8A8_UINT: + case VK_FORMAT_R8G8B8A8_SINT: + case VK_FORMAT_R16G16_UINT: + case VK_FORMAT_R16G16_SINT: + case VK_FORMAT_R16G16_SFLOAT: + case VK_FORMAT_R8G8_UINT: + case VK_FORMAT_R8G8_SINT: + case VK_FORMAT_R16_UINT: + case VK_FORMAT_R16_SFLOAT: + case VK_FORMAT_R16_SINT: + case VK_FORMAT_R8_UINT: + case VK_FORMAT_R8_SINT: + case VK_FORMAT_A2B10G10R10_UINT_PACK32: + case VK_FORMAT_A2B10G10R10_UNORM_PACK32: + case VK_FORMAT_B10G11R11_UFLOAT_PACK32: + case VK_FORMAT_R16G16B16A16_UNORM: + case VK_FORMAT_R16G16B16A16_SNORM: + case VK_FORMAT_R8G8B8A8_UNORM: + case VK_FORMAT_R8G8B8A8_SNORM: + case VK_FORMAT_R16G16_UNORM: + case VK_FORMAT_R16G16_SNORM: + case VK_FORMAT_R8G8_UNORM: + case VK_FORMAT_R8G8_SNORM: + case VK_FORMAT_R16_UNORM: + case VK_FORMAT_R16_SNORM: + case VK_FORMAT_R8_UNORM: + case VK_FORMAT_R8_SNORM: + return true; + default: + return false; + } +} + /* * nvidia names * _: UNORM diff --git a/src/nouveau/vulkan/nvk_format.h b/src/nouveau/vulkan/nvk_format.h index 1882b81..7077595 100644 --- a/src/nouveau/vulkan/nvk_format.h +++ b/src/nouveau/vulkan/nvk_format.h @@ -3,6 +3,8 @@ #include "nvk_private.h" +bool nvk_is_storage_image_format(VkFormat vk_format); + struct nvk_format { VkFormat vk_format; uint8_t hw_format; diff --git a/src/nouveau/vulkan/nvk_image.c b/src/nouveau/vulkan/nvk_image.c index a7ca98d..2a30ad0 100644 --- a/src/nouveau/vulkan/nvk_image.c +++ b/src/nouveau/vulkan/nvk_image.c @@ -8,57 +8,6 @@ #include "nil_format.h" #include "vulkan/util/vk_format.h" -static bool -is_storage_image_format(enum pipe_format p_format) -{ - /* TODO: This shouldn't be a fixed list */ - - switch (p_format) { - case PIPE_FORMAT_R32G32B32A32_UINT: - case PIPE_FORMAT_R32G32B32A32_SINT: - case PIPE_FORMAT_R32G32B32A32_FLOAT: - case PIPE_FORMAT_R32_UINT: - case PIPE_FORMAT_R32_SINT: - case PIPE_FORMAT_R32_FLOAT: - case PIPE_FORMAT_R16G16B16A16_UINT: - case PIPE_FORMAT_R16G16B16A16_SINT: - case PIPE_FORMAT_R16G16B16A16_FLOAT: - case PIPE_FORMAT_R32G32_UINT: - case PIPE_FORMAT_R32G32_SINT: - case PIPE_FORMAT_R32G32_FLOAT: - case PIPE_FORMAT_R8G8B8A8_UINT: - case PIPE_FORMAT_R8G8B8A8_SINT: - case PIPE_FORMAT_R16G16_UINT: - case PIPE_FORMAT_R16G16_SINT: - case PIPE_FORMAT_R16G16_FLOAT: - case PIPE_FORMAT_R8G8_UINT: - case PIPE_FORMAT_R8G8_SINT: - case PIPE_FORMAT_R16_UINT: - case PIPE_FORMAT_R16_FLOAT: - case PIPE_FORMAT_R16_SINT: - case PIPE_FORMAT_R8_UINT: - case PIPE_FORMAT_R8_SINT: - case PIPE_FORMAT_R10G10B10A2_UINT: - case PIPE_FORMAT_R10G10B10A2_UNORM: - case PIPE_FORMAT_R11G11B10_FLOAT: - case PIPE_FORMAT_R16G16B16A16_UNORM: - case PIPE_FORMAT_R16G16B16A16_SNORM: - case PIPE_FORMAT_R8G8B8A8_UNORM: - case PIPE_FORMAT_R8G8B8A8_SNORM: - case PIPE_FORMAT_R16G16_UNORM: - case PIPE_FORMAT_R16G16_SNORM: - case PIPE_FORMAT_R8G8_UNORM: - case PIPE_FORMAT_R8G8_SNORM: - case PIPE_FORMAT_R16_UNORM: - case PIPE_FORMAT_R16_SNORM: - case PIPE_FORMAT_R8_UNORM: - case PIPE_FORMAT_R8_SNORM: - return true; - default: - return false; - } -} - VkFormatFeatureFlags2 nvk_get_image_format_features(struct nvk_physical_device *pdevice, VkFormat vk_format, VkImageTiling tiling) @@ -85,7 +34,7 @@ nvk_get_image_format_features(struct nvk_physical_device *pdevice, util_format_is_snorm(p_format)) features |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT; - if (is_storage_image_format(p_format)) { + if (nvk_is_storage_image_format(vk_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; -- 2.7.4