Module: Mesa Branch: main Commit: ba7e87a03d6796e4c677164fee42fe7eb9927618 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba7e87a03d6796e4c677164fee42fe7eb9927618
Author: Erik Faye-Lund <[email protected]> Date: Wed Aug 10 14:35:21 2022 +0200 panfrost: do not fake rgtc-support Panfrost doesn't expose LATC format support at all, so RGTC state-tracker level RGTC support is sufficient to drop the fake RGTC flag on Panfrost. Reviewed-by: Alyssa Rosenzweig <[email protected]> Acked-by: Eric Engestrom <[email protected]> Tested-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18248> --- src/gallium/drivers/panfrost/pan_cmdstream.c | 12 ------------ src/gallium/drivers/panfrost/pan_resource.c | 7 +------ src/gallium/drivers/panfrost/pan_screen.c | 8 ++------ 3 files changed, 3 insertions(+), 24 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index 89e042c6268..8d086d5d2de 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -1671,18 +1671,6 @@ panfrost_create_sampler_view_bo(struct panfrost_sampler_view *so, format = PIPE_FORMAT_Z32_FLOAT; } - const struct util_format_description *desc = util_format_description(format); - - bool fake_rgtc = !panfrost_supports_compressed_format(device, MALI_BC4_UNORM); - - if (desc->layout == UTIL_FORMAT_LAYOUT_RGTC && fake_rgtc) { - if (desc->is_snorm) - format = PIPE_FORMAT_R8G8B8A8_SNORM; - else - format = PIPE_FORMAT_R8G8B8A8_UNORM; - desc = util_format_description(format); - } - so->texture_bo = prsrc->image.data.bo->ptr.gpu; so->modifier = prsrc->image.layout.modifier; diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index 228e4520135..2fce5bbb77e 100644 --- a/src/gallium/drivers/panfrost/pan_resource.c +++ b/src/gallium/drivers/panfrost/pan_resource.c @@ -1449,10 +1449,6 @@ static const struct u_transfer_vtbl transfer_vtbl = { void panfrost_resource_screen_init(struct pipe_screen *pscreen) { - struct panfrost_device *dev = pan_device(pscreen); - - bool fake_rgtc = !panfrost_supports_compressed_format(dev, MALI_BC4_UNORM); - pscreen->resource_create_with_modifiers = panfrost_resource_create_with_modifiers; pscreen->resource_create = u_transfer_helper_resource_create; @@ -1462,8 +1458,7 @@ panfrost_resource_screen_init(struct pipe_screen *pscreen) pscreen->resource_get_param = panfrost_resource_get_param; pscreen->transfer_helper = u_transfer_helper_create(&transfer_vtbl, U_TRANSFER_HELPER_SEPARATE_Z32S8 | - U_TRANSFER_HELPER_MSAA_MAP | - (fake_rgtc ? U_TRANSFER_HELPER_FAKE_RGTC : 0)); + U_TRANSFER_HELPER_MSAA_MAP); } void panfrost_resource_screen_destroy(struct pipe_screen *pscreen) diff --git a/src/gallium/drivers/panfrost/pan_screen.c b/src/gallium/drivers/panfrost/pan_screen.c index f44d0fdc2ce..d123330e708 100644 --- a/src/gallium/drivers/panfrost/pan_screen.c +++ b/src/gallium/drivers/panfrost/pan_screen.c @@ -529,7 +529,6 @@ panfrost_is_format_supported( struct pipe_screen *screen, unsigned bind) { struct panfrost_device *dev = pan_device(screen); - const struct util_format_description *format_desc; assert(target == PIPE_BUFFER || target == PIPE_TEXTURE_1D || @@ -541,8 +540,6 @@ panfrost_is_format_supported( struct pipe_screen *screen, target == PIPE_TEXTURE_CUBE || target == PIPE_TEXTURE_CUBE_ARRAY); - format_desc = util_format_description(format); - /* MSAA 2x gets rounded up to 4x. MSAA 8x/16x only supported on v5+. * TODO: debug MSAA 8x/16x */ @@ -578,13 +575,12 @@ panfrost_is_format_supported( struct pipe_screen *screen, /* Also check that compressed texture formats are supported on this * particular chip. They may not be depending on system integration - * differences. RGTC can be emulated so is always supported. */ + * differences. */ - bool is_rgtc = format_desc->layout == UTIL_FORMAT_LAYOUT_RGTC; bool supported = panfrost_supports_compressed_format(dev, MALI_EXTRACT_INDEX(fmt.hw)); - if (!is_rgtc && !supported) + if (!supported) return false; return MALI_EXTRACT_INDEX(fmt.hw) && ((relevant_bind & ~fmt.bind) == 0);
