mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
panvk: Use the new border color helpers
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15359>
This commit is contained in:
parent
981cf8a41d
commit
b8882718b7
1 changed files with 8 additions and 44 deletions
|
|
@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue