From 87dcdbdad65e105c80b7f894cc975123b8daeaee Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 17 May 2022 14:22:09 -0400 Subject: [PATCH] panfrost: Pass arch instead of dev into afbc_format For callers that have a device object, it's easy to pass dev->arch instead of dev. But this requires callers to have a reference to the device, which is tricky for callers that only have the arch via PAN_ARCH. Pass dev->arch instead of dev to accommodate them. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/panfrost/pan_resource.c | 4 ++-- src/panfrost/lib/pan_afbc.c | 6 +++--- src/panfrost/lib/pan_texture.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index cf9785bc82b..21e512e30a0 100644 --- a/src/gallium/drivers/panfrost/pan_resource.c +++ b/src/gallium/drivers/panfrost/pan_resource.c @@ -1201,8 +1201,8 @@ pan_legalize_afbc_format(struct panfrost_context *ctx, if (!drm_is_afbc(rsrc->image.layout.modifier)) return; - if (panfrost_afbc_format(dev, pan_blit_format(rsrc->base.format)) == - panfrost_afbc_format(dev, pan_blit_format(format))) + if (panfrost_afbc_format(dev->arch, pan_blit_format(rsrc->base.format)) == + panfrost_afbc_format(dev->arch, pan_blit_format(format))) return; pan_resource_modifier_convert(ctx, rsrc, diff --git a/src/panfrost/lib/pan_afbc.c b/src/panfrost/lib/pan_afbc.c index 96f2c831f10..bf655e7a2c2 100644 --- a/src/panfrost/lib/pan_afbc.c +++ b/src/panfrost/lib/pan_afbc.c @@ -72,7 +72,7 @@ * cannot be compressed. */ enum pipe_format -panfrost_afbc_format(const struct panfrost_device *dev, enum pipe_format format) +panfrost_afbc_format(unsigned arch, enum pipe_format format) { /* Don't allow swizzled formats on v7 */ switch (format) { @@ -84,7 +84,7 @@ panfrost_afbc_format(const struct panfrost_device *dev, enum pipe_format format) case PIPE_FORMAT_A8B8G8R8_UNORM: case PIPE_FORMAT_B8G8R8_UNORM: case PIPE_FORMAT_B5G6R5_UNORM: - if (dev->arch >= 7) + if (arch >= 7) return PIPE_FORMAT_NONE; break; @@ -128,7 +128,7 @@ panfrost_afbc_format(const struct panfrost_device *dev, enum pipe_format format) bool panfrost_format_supports_afbc(const struct panfrost_device *dev, enum pipe_format format) { - return panfrost_afbc_format(dev, format) != PIPE_FORMAT_NONE; + return panfrost_afbc_format(dev->arch, format) != PIPE_FORMAT_NONE; } /* The lossless colour transform (AFBC_FORMAT_MOD_YTR) requires RGB. */ diff --git a/src/panfrost/lib/pan_texture.h b/src/panfrost/lib/pan_texture.h index f4a7716244e..e148c0b9617 100644 --- a/src/panfrost/lib/pan_texture.h +++ b/src/panfrost/lib/pan_texture.h @@ -164,7 +164,7 @@ panfrost_format_supports_afbc(const struct panfrost_device *dev, enum pipe_format format); enum pipe_format -panfrost_afbc_format(const struct panfrost_device *dev, enum pipe_format format); +panfrost_afbc_format(unsigned arch, enum pipe_format format); #define AFBC_HEADER_BYTES_PER_TILE 16