zink: move x8 format function to zink_format.c
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31277>
This commit is contained in:
committed by
Marge Bot
parent
735e402ae4
commit
42648508f7
@@ -165,6 +165,46 @@ zink_format_get_emulated_alpha(enum pipe_format format)
|
||||
return emulate_red_alpha(format);
|
||||
}
|
||||
|
||||
|
||||
enum pipe_format
|
||||
zink_format_emulate_x8(enum pipe_format format)
|
||||
{
|
||||
/* convert missing Xn variants to An */
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_B8G8R8X8_SRGB:
|
||||
return PIPE_FORMAT_B8G8R8A8_SRGB;
|
||||
case PIPE_FORMAT_R8G8B8X8_SRGB:
|
||||
return PIPE_FORMAT_R8G8B8A8_SRGB;
|
||||
|
||||
case PIPE_FORMAT_R8G8B8X8_SINT:
|
||||
return PIPE_FORMAT_R8G8B8A8_SINT;
|
||||
case PIPE_FORMAT_R8G8B8X8_SNORM:
|
||||
return PIPE_FORMAT_R8G8B8A8_SNORM;
|
||||
case PIPE_FORMAT_R8G8B8X8_UNORM:
|
||||
return PIPE_FORMAT_R8G8B8A8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_R16G16B16X16_FLOAT:
|
||||
return PIPE_FORMAT_R16G16B16A16_FLOAT;
|
||||
case PIPE_FORMAT_R16G16B16X16_SINT:
|
||||
return PIPE_FORMAT_R16G16B16A16_SINT;
|
||||
case PIPE_FORMAT_R16G16B16X16_SNORM:
|
||||
return PIPE_FORMAT_R16G16B16A16_SNORM;
|
||||
case PIPE_FORMAT_R16G16B16X16_UNORM:
|
||||
return PIPE_FORMAT_R16G16B16A16_UNORM;
|
||||
|
||||
case PIPE_FORMAT_R32G32B32X32_FLOAT:
|
||||
return PIPE_FORMAT_R32G32B32A32_FLOAT;
|
||||
case PIPE_FORMAT_R32G32B32X32_SINT:
|
||||
return PIPE_FORMAT_R32G32B32A32_SINT;
|
||||
|
||||
default:
|
||||
return format;
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
zink_format_is_voidable_rgba_variant(enum pipe_format format)
|
||||
{
|
||||
|
||||
@@ -47,7 +47,8 @@ void
|
||||
zink_format_clamp_channel_color(const struct util_format_description *desc, union pipe_color_union *dst, const union pipe_color_union *src, unsigned i);
|
||||
void
|
||||
zink_format_clamp_channel_srgb(const struct util_format_description *desc, union pipe_color_union *dst, const union pipe_color_union *src, unsigned i);
|
||||
|
||||
enum pipe_format
|
||||
zink_format_emulate_x8(enum pipe_format format);
|
||||
static inline bool
|
||||
zink_format_needs_mutable(enum pipe_format a, enum pipe_format b)
|
||||
{
|
||||
|
||||
@@ -1921,45 +1921,6 @@ zink_is_depth_format_supported(struct zink_screen *screen, VkFormat format)
|
||||
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT;
|
||||
}
|
||||
|
||||
static enum pipe_format
|
||||
emulate_x8(enum pipe_format format)
|
||||
{
|
||||
/* convert missing Xn variants to An */
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_B8G8R8X8_SRGB:
|
||||
return PIPE_FORMAT_B8G8R8A8_SRGB;
|
||||
case PIPE_FORMAT_R8G8B8X8_SRGB:
|
||||
return PIPE_FORMAT_R8G8B8A8_SRGB;
|
||||
|
||||
case PIPE_FORMAT_R8G8B8X8_SINT:
|
||||
return PIPE_FORMAT_R8G8B8A8_SINT;
|
||||
case PIPE_FORMAT_R8G8B8X8_SNORM:
|
||||
return PIPE_FORMAT_R8G8B8A8_SNORM;
|
||||
case PIPE_FORMAT_R8G8B8X8_UNORM:
|
||||
return PIPE_FORMAT_R8G8B8A8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_R16G16B16X16_FLOAT:
|
||||
return PIPE_FORMAT_R16G16B16A16_FLOAT;
|
||||
case PIPE_FORMAT_R16G16B16X16_SINT:
|
||||
return PIPE_FORMAT_R16G16B16A16_SINT;
|
||||
case PIPE_FORMAT_R16G16B16X16_SNORM:
|
||||
return PIPE_FORMAT_R16G16B16A16_SNORM;
|
||||
case PIPE_FORMAT_R16G16B16X16_UNORM:
|
||||
return PIPE_FORMAT_R16G16B16A16_UNORM;
|
||||
|
||||
case PIPE_FORMAT_R32G32B32X32_FLOAT:
|
||||
return PIPE_FORMAT_R32G32B32A32_FLOAT;
|
||||
case PIPE_FORMAT_R32G32B32X32_SINT:
|
||||
return PIPE_FORMAT_R32G32B32A32_SINT;
|
||||
|
||||
default:
|
||||
return format;
|
||||
}
|
||||
}
|
||||
|
||||
VkFormat
|
||||
zink_get_format(struct zink_screen *screen, enum pipe_format format)
|
||||
{
|
||||
@@ -1968,7 +1929,7 @@ zink_get_format(struct zink_screen *screen, enum pipe_format format)
|
||||
else if (!screen->driver_workarounds.broken_l4a4 || format != PIPE_FORMAT_L4A4_UNORM)
|
||||
format = zink_format_get_emulated_alpha(format);
|
||||
|
||||
VkFormat ret = vk_format_from_pipe_format(emulate_x8(format));
|
||||
VkFormat ret = vk_format_from_pipe_format(zink_format_emulate_x8(format));
|
||||
|
||||
if (format == PIPE_FORMAT_X32_S8X24_UINT &&
|
||||
screen->have_D32_SFLOAT_S8_UINT)
|
||||
|
||||
Reference in New Issue
Block a user