Mesa (main): panvk: Use the new border color helpers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 23 00:28:11 UTC 2022


Module: Mesa
Branch: main
Commit: b8882718b7fa9c4dc4d47ed99ab4801fe94ca530
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b8882718b7fa9c4dc4d47ed99ab4801fe94ca530

Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Sat Mar 12 12:10:08 2022 -0600

panvk: Use the new border color helpers

Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15359>

---

 src/panfrost/vulkan/panvk_vX_cs.c | 52 ++++++---------------------------------
 1 file changed, 8 insertions(+), 44 deletions(-)

diff --git a/src/panfrost/vulkan/panvk_vX_cs.c b/src/panfrost/vulkan/panvk_vX_cs.c
index be4785a652a..fb535c905d6 100644
--- a/src/panfrost/vulkan/panvk_vX_cs.c
+++ b/src/panfrost/vulkan/panvk_vX_cs.c
@@ -37,6 +37,8 @@
 #include "panvk_private.h"
 #include "panvk_varyings.h"
 
+#include "vk_sampler.h"
+
 static enum mali_mipmap_mode
 panvk_translate_sampler_mipmap_mode(VkSamplerMipmapMode mode)
 {
@@ -60,43 +62,6 @@ panvk_translate_sampler_address_mode(VkSamplerAddressMode mode)
    }
 }
 
-static void
-panvk_translate_sampler_border_color(const VkSamplerCreateInfo *pCreateInfo,
-                                     uint32_t border_color[4])
-{
-   const VkSamplerCustomBorderColorCreateInfoEXT *pBorderColor =
-      vk_find_struct_const(pCreateInfo->pNext, SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT);
-
-   switch (pCreateInfo->borderColor) {
-   case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:
-   case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:
-      border_color[0] = border_color[1] = border_color[2] = fui(0.0);
-      border_color[3] =
-         pCreateInfo->borderColor == VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK ?
-         fui(1.0) : fui(0.0);
-      break;
-   case VK_BORDER_COLOR_INT_OPAQUE_BLACK:
-   case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:
-      border_color[0] = border_color[1] = border_color[2] = 0;
-      border_color[3] =
-         pCreateInfo->borderColor == VK_BORDER_COLOR_INT_OPAQUE_BLACK ?
-         1 : 0;
-      break;
-   case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:
-      border_color[0] = border_color[1] = border_color[2] = border_color[3] = fui(1.0);
-      break;
-   case VK_BORDER_COLOR_INT_OPAQUE_WHITE:
-      border_color[0] = border_color[1] = border_color[2] = border_color[3] = 1;
-      break;
-   case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:
-   case VK_BORDER_COLOR_INT_CUSTOM_EXT:
-      memcpy(border_color, pBorderColor->customBorderColor.int32, sizeof(uint32_t) * 4);
-      break;
-   default:
-      unreachable("Invalid border color");
-   }
-}
-
 static mali_pixel_format
 panvk_varying_hw_format(const struct panvk_device *dev,
                         const struct panvk_varyings_info *varyings,
@@ -274,9 +239,8 @@ void
 panvk_per_arch(emit_sampler)(const VkSamplerCreateInfo *pCreateInfo,
                              void *desc)
 {
-   uint32_t border_color[4];
-
-   panvk_translate_sampler_border_color(pCreateInfo, border_color);
+   VkClearColorValue border_color =
+      vk_sampler_border_color_value(pCreateInfo, NULL);
 
    pan_pack(desc, SAMPLER, cfg) {
       cfg.magnify_nearest = pCreateInfo->magFilter == VK_FILTER_NEAREST;
@@ -291,10 +255,10 @@ panvk_per_arch(emit_sampler)(const VkSamplerCreateInfo *pCreateInfo,
       cfg.wrap_mode_t = panvk_translate_sampler_address_mode(pCreateInfo->addressModeV);
       cfg.wrap_mode_r = panvk_translate_sampler_address_mode(pCreateInfo->addressModeW);
       cfg.compare_function = panvk_per_arch(translate_sampler_compare_func)(pCreateInfo);
-      cfg.border_color_r = border_color[0];
-      cfg.border_color_g = border_color[1];
-      cfg.border_color_b = border_color[2];
-      cfg.border_color_a = border_color[3];
+      cfg.border_color_r = border_color.uint32[0];
+      cfg.border_color_g = border_color.uint32[1];
+      cfg.border_color_b = border_color.uint32[2];
+      cfg.border_color_a = border_color.uint32[3];
    }
 }
 



More information about the mesa-commit mailing list