diff --git a/src/panfrost/lib/pan_layout.c b/src/panfrost/lib/pan_layout.c index 04751c9572e..309f4895c30 100644 --- a/src/panfrost/lib/pan_layout.c +++ b/src/panfrost/lib/pan_layout.c @@ -104,6 +104,17 @@ panfrost_afbc_is_wide(uint64_t modifier) return panfrost_afbc_superblock_width(modifier) > 16; } +/* + * Given an AFBC modifier, return the subblock size (subdivision of a + * superblock). This is always 4x4 for now as we only support one AFBC + * superblock layout. + */ +struct pan_block_size +panfrost_afbc_subblock_size(uint64_t modifier) +{ + return (struct pan_block_size){4, 4}; +} + /* * Given a format, determine the tile size used for u-interleaving. For formats * that are already block compressed, this is 4x4. For all other formats, this diff --git a/src/panfrost/lib/pan_texture.h b/src/panfrost/lib/pan_texture.h index 001818320a9..80028be275b 100644 --- a/src/panfrost/lib/pan_texture.h +++ b/src/panfrost/lib/pan_texture.h @@ -249,6 +249,8 @@ unsigned panfrost_afbc_superblock_height(uint64_t modifier); bool panfrost_afbc_is_wide(uint64_t modifier); +struct pan_block_size panfrost_afbc_subblock_size(uint64_t modifier); + uint32_t pan_afbc_row_stride(uint64_t modifier, uint32_t width); uint32_t pan_afbc_stride_blocks(uint64_t modifier, uint32_t row_stride_bytes);