From b8882718b7fa9c4dc4d47ed99ab4801fe94ca530 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Sat, 12 Mar 2022 12:10:08 -0600 Subject: [PATCH] panvk: Use the new border color helpers Reviewed-by: Boris Brezillon Part-of: --- 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 be4785a..fb535c9 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]; } } -- 2.7.4