Commit 4c891488 authored by Alyssa Rosenzweig's avatar Alyssa Rosenzweig 💜
Browse files

panfrost: Handle PIPE_FORMAT_X24S8_UINT



We can treat it as RGBA32UI and swizzle away everything but R, like the
blob does. Maybe not the most efficient thing in the world.
Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <mesa/mesa!5827>
parent 1fdeef5e
......@@ -140,6 +140,7 @@ struct panfrost_format panfrost_pipe_format_table[PIPE_FORMAT_COUNT] = {
[PIPE_FORMAT_Z24X8_UNORM] = { MALI_Z24X8_UNORM, _TZ },
[PIPE_FORMAT_Z32_FLOAT] = { MALI_R32F, _TZ },
[PIPE_FORMAT_Z32_FLOAT_S8X24_UINT] = { MALI_R32F, _TZ },
[PIPE_FORMAT_X24S8_UINT] = { MALI_RGBA8UI, _TZ },
[PIPE_FORMAT_R32_FIXED] = { MALI_R32_FIXED, _V },
[PIPE_FORMAT_R32G32_FIXED] = { MALI_RG32_FIXED, _V },
......
......@@ -241,6 +241,12 @@ panfrost_emit_texture_payload(
}
}
#define MALI_SWIZZLE_A001 \
(MALI_CHANNEL_ALPHA << 0) | \
(MALI_CHANNEL_ZERO << 3) | \
(MALI_CHANNEL_ZERO << 6) | \
(MALI_CHANNEL_ONE << 9)
void
panfrost_new_texture(
void *out,
......@@ -275,7 +281,9 @@ panfrost_new_texture(
.depth = MALI_POSITIVE(u_minify(depth, first_level)),
.array_size = MALI_POSITIVE(array_size),
.format = {
.swizzle = panfrost_translate_swizzle_4(desc->swizzle),
.swizzle = (format == PIPE_FORMAT_X24S8_UINT) ?
MALI_SWIZZLE_A001 :
panfrost_translate_swizzle_4(desc->swizzle),
.format = mali_format,
.srgb = (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB),
.type = type,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment