From 5aa51ba97f91f1acaac4e201740ce0afe7272286 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 18 Jun 2019 07:41:26 -0700 Subject: [PATCH] panfrost: Disable AFBC on sRGB buffers The performance impact is slightly mitigated by tiling the render target, but it's undeniably still slow compared to AFBC. Unfortunately, it doesn't look like AFBC and sRGB play nice... Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_afbc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/drivers/panfrost/pan_afbc.c b/src/gallium/drivers/panfrost/pan_afbc.c index 0bb9d24..4bef833 100644 --- a/src/gallium/drivers/panfrost/pan_afbc.c +++ b/src/gallium/drivers/panfrost/pan_afbc.c @@ -83,6 +83,13 @@ panfrost_format_supports_afbc(enum pipe_format format) const struct util_format_description *desc = util_format_description(format); + /* sRGB cannot be AFBC, but it can be tiled. TODO: Verify. The blob + * does not do AFBC for SRGB8_ALPHA8, but it's not clear why it + * shouldn't be able to. */ + + if (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) + return false; + if (util_format_is_rgba8_variant(desc)) return true; -- 2.7.4