From 27d622cffe32b45d73e866ac1a03d422a536d51d Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Thu, 26 Nov 2020 16:02:09 +0100 Subject: [PATCH] panfost: Fix depth/stencil writeback on Bifrost v7 Signed-off-by: Boris Brezillon Reviewed-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/panfrost/pan_mfbd.c | 12 +++++++++++- src/panfrost/lib/midgard.xml | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/panfrost/pan_mfbd.c b/src/gallium/drivers/panfrost/pan_mfbd.c index 0828d996b4b..62a07f36d70 100644 --- a/src/gallium/drivers/panfrost/pan_mfbd.c +++ b/src/gallium/drivers/panfrost/pan_mfbd.c @@ -286,7 +286,10 @@ panfrost_mfbd_zs_crc_ext_set_bufs(struct panfrost_batch *batch, mali_ptr base = panfrost_get_texture_address(rsrc, level, first_layer, 0); - ext->zs_msaa = nr_samples > 1 ? MALI_MSAA_LAYERED : MALI_MSAA_SINGLE; + if (version < 7) + ext->zs_msaa = nr_samples > 1 ? MALI_MSAA_LAYERED : MALI_MSAA_SINGLE; + else + ext->zs_msaa_v7 = nr_samples > 1 ? MALI_MSAA_LAYERED : MALI_MSAA_SINGLE; if (drm_is_afbc(rsrc->modifier)) { unsigned header_size = rsrc->slices[level].header_size; @@ -345,6 +348,13 @@ panfrost_mfbd_zs_crc_ext_set_bufs(struct panfrost_batch *batch, */ ext->zs_write_format = MALI_ZS_FORMAT_D32; ext->s_write_format = MALI_S_FORMAT_S8; + if (version < 7) { + ext->s_block_format = ext->zs_block_format; + ext->s_msaa = ext->zs_msaa; + } else { + ext->s_block_format_v7 = ext->zs_block_format_v7; + ext->s_msaa_v7 = ext->zs_msaa_v7; + } struct panfrost_resource *stencil = rsrc->separate_stencil; struct panfrost_slice stencil_slice = stencil->slices[level]; diff --git a/src/panfrost/lib/midgard.xml b/src/panfrost/lib/midgard.xml index 116686327e9..363b6072e7a 100644 --- a/src/panfrost/lib/midgard.xml +++ b/src/panfrost/lib/midgard.xml @@ -1194,12 +1194,15 @@ + + +