lavapipe: clean-ups in lvp_physical_device_get_format_properties()
authorBrian Paul <brianp@vmware.com>
Fri, 7 Apr 2023 17:26:04 +0000 (11:26 -0600)
committerMarge Bot <emma+marge@anholt.net>
Tue, 25 Apr 2023 02:09:26 +0000 (02:09 +0000)
Use new pscreen local var to shorten the code.
Line-wrap and align code for easier reading.
Consolidate |= assignments.

Signed-off-by: Brian Paul <brianp@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22467>

src/gallium/frontends/lavapipe/lvp_formats.c

index 00a5216..7c206db 100644 (file)
@@ -58,13 +58,16 @@ static bool lvp_is_filter_minmax_format_supported(VkFormat format)
    }
 }
 
+
 static void
 lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_device,
                                           VkFormat format,
                                           VkFormatProperties3 *out_properties)
 {
-   enum pipe_format pformat = lvp_vk_format_to_pipe_format(format);
+   const enum pipe_format pformat = lvp_vk_format_to_pipe_format(format);
+   struct pipe_screen *pscreen = physical_device->pscreen;
    VkFormatFeatureFlags2 features = 0, buffer_features = 0;
+
    if (pformat == PIPE_FORMAT_NONE) {
      out_properties->linearTilingFeatures = 0;
      out_properties->optimalTilingFeatures = 0;
@@ -72,28 +75,33 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
      return;
    }
 
-   if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
-                                                     PIPE_TEXTURE_2D, 0, 0, PIPE_BIND_DEPTH_STENCIL)) {
+   if (pscreen->is_format_supported(pscreen, pformat, PIPE_TEXTURE_2D, 0, 0,
+                                    PIPE_BIND_DEPTH_STENCIL)) {
       out_properties->linearTilingFeatures = 0;
-      out_properties->optimalTilingFeatures = VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT | VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT |
-         VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT | VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT |
-         VK_FORMAT_FEATURE_2_BLIT_SRC_BIT | VK_FORMAT_FEATURE_2_BLIT_DST_BIT |
-         VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT |
-         VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT;
+      out_properties->optimalTilingFeatures =
+         (VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT |
+          VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT |
+          VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT |
+          VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT |
+          VK_FORMAT_FEATURE_2_BLIT_SRC_BIT | VK_FORMAT_FEATURE_2_BLIT_DST_BIT |
+          VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT |
+          VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT);
 
       if (lvp_is_filter_minmax_format_supported(format))
-         out_properties->optimalTilingFeatures |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT;
+         out_properties->optimalTilingFeatures |=
+            VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT;
       out_properties->bufferFeatures = 0;
       return;
    }
 
    if (util_format_is_compressed(pformat)) {
-      if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
-                                                        PIPE_TEXTURE_2D, 0, 0, PIPE_BIND_SAMPLER_VIEW)) {
-         features |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT;
-         features |= VK_FORMAT_FEATURE_2_BLIT_SRC_BIT;
-         features |= VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT | VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT;
-         features |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT;
+      if (pscreen->is_format_supported(pscreen, pformat, PIPE_TEXTURE_2D, 0, 0,
+                                       PIPE_BIND_SAMPLER_VIEW)) {
+         features |= (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT |
+                      VK_FORMAT_FEATURE_2_BLIT_SRC_BIT |
+                      VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT |
+                      VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT |
+                      VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT);
       }
       out_properties->linearTilingFeatures = features;
       out_properties->optimalTilingFeatures = features;
@@ -102,27 +110,27 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
    }
 
    if (!util_format_is_srgb(pformat) &&
-       physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
-                                                     PIPE_BUFFER, 0, 0, PIPE_BIND_VERTEX_BUFFER)) {
+       pscreen->is_format_supported(pscreen, pformat, PIPE_BUFFER, 0, 0,
+                                    PIPE_BIND_VERTEX_BUFFER)) {
       buffer_features |= VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT;
    }
 
-   if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
-                                                     PIPE_BUFFER, 0, 0, PIPE_BIND_CONSTANT_BUFFER)) {
+   if (pscreen->is_format_supported(pscreen, pformat, PIPE_BUFFER, 0, 0,
+                                    PIPE_BIND_CONSTANT_BUFFER)) {
       buffer_features |= VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT;
    }
 
-   if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
-                                                     PIPE_BUFFER, 0, 0, PIPE_BIND_SHADER_IMAGE)) {
+   if (pscreen->is_format_supported(pscreen, pformat, PIPE_BUFFER, 0, 0,
+                                    PIPE_BIND_SHADER_IMAGE)) {
       buffer_features |= VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT;
-      if (physical_device->pscreen->get_param(physical_device->pscreen, PIPE_CAP_IMAGE_LOAD_FORMATTED))
+      if (pscreen->get_param(pscreen, PIPE_CAP_IMAGE_LOAD_FORMATTED))
          buffer_features |= VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT;
-      if (physical_device->pscreen->get_param(physical_device->pscreen, PIPE_CAP_IMAGE_STORE_FORMATTED))
+      if (pscreen->get_param(pscreen, PIPE_CAP_IMAGE_STORE_FORMATTED))
          buffer_features |= VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT;
    }
 
-   if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
-                                                     PIPE_TEXTURE_2D, 0, 0, PIPE_BIND_SAMPLER_VIEW)) {
+   if (pscreen->is_format_supported(pscreen, pformat, PIPE_TEXTURE_2D, 0, 0,
+                                    PIPE_BIND_SAMPLER_VIEW)) {
       features |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT;
       if (util_format_has_depth(util_format_description(pformat)))
          features |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT;
@@ -132,47 +140,57 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
          features |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT;
    }
 
-   if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
-                                                     PIPE_TEXTURE_2D, 0, 0, PIPE_BIND_RENDER_TARGET)) {
+   if (pscreen->is_format_supported(pscreen, pformat, PIPE_TEXTURE_2D, 0, 0,
+                                    PIPE_BIND_RENDER_TARGET)) {
       features |= VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT;
       /* SNORM blending on llvmpipe fails CTS - disable for now */
-      if (!util_format_is_snorm(pformat) && !util_format_is_pure_integer(pformat))
+      if (!util_format_is_snorm(pformat) &&
+          !util_format_is_pure_integer(pformat))
          features |= VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT;
    }
 
-   if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
-                                                     PIPE_TEXTURE_2D, 0, 0, PIPE_BIND_SHADER_IMAGE)) {
+   if (pscreen->is_format_supported(pscreen, pformat, PIPE_TEXTURE_2D, 0, 0,
+                                    PIPE_BIND_SHADER_IMAGE)) {
       features |= VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT;
-      if (physical_device->pscreen->get_param(physical_device->pscreen, PIPE_CAP_IMAGE_LOAD_FORMATTED))
+      if (pscreen->get_param(pscreen, PIPE_CAP_IMAGE_LOAD_FORMATTED))
          features |= VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT;
-      if (physical_device->pscreen->get_param(physical_device->pscreen, PIPE_CAP_IMAGE_STORE_FORMATTED))
+      if (pscreen->get_param(pscreen, PIPE_CAP_IMAGE_STORE_FORMATTED))
          features |= VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT;
    }
 
-   if (pformat == PIPE_FORMAT_R32_UINT || pformat == PIPE_FORMAT_R32_SINT || pformat == PIPE_FORMAT_R32_FLOAT) {
+   if (pformat == PIPE_FORMAT_R32_UINT ||
+       pformat == PIPE_FORMAT_R32_SINT ||
+       pformat == PIPE_FORMAT_R32_FLOAT) {
       features |= VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT;
       buffer_features |= VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT;
+   } else if (pformat == PIPE_FORMAT_R11G11B10_FLOAT ||
+              pformat == PIPE_FORMAT_R9G9B9E5_FLOAT) {
+      features |= VK_FORMAT_FEATURE_2_BLIT_SRC_BIT;
    }
 
-   if (pformat == PIPE_FORMAT_R11G11B10_FLOAT || pformat == PIPE_FORMAT_R9G9B9E5_FLOAT)
-     features |= VK_FORMAT_FEATURE_2_BLIT_SRC_BIT;
-
-   if (features && buffer_features != VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT)
-      features |= VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT | VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT;
-   if (pformat == PIPE_FORMAT_B5G6R5_UNORM)
-     features |= VK_FORMAT_FEATURE_2_BLIT_SRC_BIT | VK_FORMAT_FEATURE_2_BLIT_DST_BIT;
-   if ((pformat != PIPE_FORMAT_R9G9B9E5_FLOAT) && util_format_get_nr_components(pformat) != 3 &&
-       pformat != PIPE_FORMAT_R10G10B10A2_SNORM && pformat != PIPE_FORMAT_B10G10R10A2_SNORM &&
+   if (features && buffer_features != VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT) {
+      features |= (VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT |
+                   VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT);
+   }
+   if (pformat == PIPE_FORMAT_B5G6R5_UNORM) {
+      features |= (VK_FORMAT_FEATURE_2_BLIT_SRC_BIT |
+                   VK_FORMAT_FEATURE_2_BLIT_DST_BIT);
+   }
+   if ((pformat != PIPE_FORMAT_R9G9B9E5_FLOAT) &&
+       util_format_get_nr_components(pformat) != 3 &&
+       pformat != PIPE_FORMAT_R10G10B10A2_SNORM &&
+       pformat != PIPE_FORMAT_B10G10R10A2_SNORM &&
        pformat != PIPE_FORMAT_B10G10R10A2_UNORM) {
-      features |= VK_FORMAT_FEATURE_2_BLIT_SRC_BIT | VK_FORMAT_FEATURE_2_BLIT_DST_BIT;
+      features |= (VK_FORMAT_FEATURE_2_BLIT_SRC_BIT |
+                   VK_FORMAT_FEATURE_2_BLIT_DST_BIT);
    }
 
    out_properties->linearTilingFeatures = features;
    out_properties->optimalTilingFeatures = features;
    out_properties->bufferFeatures = buffer_features;
-   return;
 }
 
+
 VKAPI_ATTR void VKAPI_CALL lvp_GetPhysicalDeviceFormatProperties2(
         VkPhysicalDevice                            physicalDevice,
         VkFormat                                    format,