nvk: Move is_storage_image_format to nvk_format.c
authorFaith Ekstrand <faith.ekstrand@collabora.com>
Tue, 31 Jan 2023 02:11:50 +0000 (20:11 -0600)
committerMarge Bot <emma+marge@anholt.net>
Fri, 4 Aug 2023 21:31:55 +0000 (21:31 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>

src/nouveau/vulkan/nvk_format.c
src/nouveau/vulkan/nvk_format.h
src/nouveau/vulkan/nvk_image.c

index 8d17a2d..5680767 100644 (file)
 #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
index 1882b81..7077595 100644 (file)
@@ -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;
index a7ca98d..2a30ad0 100644 (file)
@@ -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;