Module: Mesa Branch: master Commit: 34fd07aa56a158c5eee38e0bd531448a600fe37f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=34fd07aa56a158c5eee38e0bd531448a600fe37f
Author: Marek Olšák <marek.ol...@amd.com> Date: Mon Apr 12 00:54:37 2021 -0400 ac/surface: unify htile_levels and dcc_levels as meta_levels Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-pra...@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10083> --- src/amd/common/ac_surface.c | 8 ++++---- src/amd/common/ac_surface.h | 9 +++------ src/amd/vulkan/radv_meta_clear.c | 8 ++++---- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index ffb81cf0a84..c03206d00e3 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -1806,8 +1806,8 @@ static int gfx9_compute_miptree(struct ac_addrlib *addrlib, const struct radeon_ surf->num_htile_levels = in->numMipLevels; for (unsigned i = 0; i < in->numMipLevels; i++) { - surf->u.gfx9.htile_levels[i].offset = meta_mip_info[i].offset; - surf->u.gfx9.htile_levels[i].size = meta_mip_info[i].sliceSize; + surf->u.gfx9.meta_levels[i].offset = meta_mip_info[i].offset; + surf->u.gfx9.meta_levels[i].size = meta_mip_info[i].sliceSize; if (meta_mip_info[i].inMiptail) { /* GFX10 can only compress the first level @@ -1919,8 +1919,8 @@ static int gfx9_compute_miptree(struct ac_addrlib *addrlib, const struct radeon_ * - Flush TC L2 after rendering. */ for (unsigned i = 0; i < in->numMipLevels; i++) { - surf->u.gfx9.dcc_levels[i].offset = meta_mip_info[i].offset; - surf->u.gfx9.dcc_levels[i].size = meta_mip_info[i].sliceSize; + surf->u.gfx9.meta_levels[i].offset = meta_mip_info[i].offset; + surf->u.gfx9.meta_levels[i].size = meta_mip_info[i].sliceSize; if (meta_mip_info[i].inMiptail) { /* GFX10 can only compress the first level diff --git a/src/amd/common/ac_surface.h b/src/amd/common/ac_surface.h index ec8e3130818..b4964aa6c35 100644 --- a/src/amd/common/ac_surface.h +++ b/src/amd/common/ac_surface.h @@ -188,6 +188,9 @@ struct gfx9_surf_layout { /* Offset within slice in bytes, only valid for prt images. */ uint32_t prt_level_offset[RADEON_SURF_MAX_LEVELS]; + /* DCC or HTILE level info */ + struct gfx9_surf_level meta_levels[RADEON_SURF_MAX_LEVELS]; + union { /* Color */ struct { @@ -215,9 +218,6 @@ struct gfx9_surf_layout { uint32_t dcc_retile_num_elements; void *dcc_retile_map; - /* DCC level info */ - struct gfx9_surf_level dcc_levels[RADEON_SURF_MAX_LEVELS]; - /* CMASK level info (only level 0) */ struct gfx9_surf_level cmask_level0; }; @@ -227,9 +227,6 @@ struct gfx9_surf_layout { uint64_t stencil_offset; /* separate stencil */ uint16_t stencil_epitch; /* gfx9 only, not on gfx10 */ uint8_t stencil_swizzle_mode; - - /* HTILE level info */ - struct gfx9_surf_level htile_levels[RADEON_SURF_MAX_LEVELS]; }; }; }; diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c index 17eb1428025..ce5dce8de6e 100644 --- a/src/amd/vulkan/radv_meta_clear.c +++ b/src/amd/vulkan/radv_meta_clear.c @@ -1282,8 +1282,8 @@ radv_clear_dcc(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image, if (cmd_buffer->device->physical_device->rad_info.chip_class >= GFX10) { /* DCC for mipmaps+layers is currently disabled. */ offset += image->planes[0].surface.dcc_slice_size * range->baseArrayLayer + - image->planes[0].surface.u.gfx9.dcc_levels[level].offset; - size = image->planes[0].surface.u.gfx9.dcc_levels[level].size * layer_count; + image->planes[0].surface.u.gfx9.meta_levels[level].offset; + size = image->planes[0].surface.u.gfx9.meta_levels[level].size * layer_count; } else if (cmd_buffer->device->physical_device->rad_info.chip_class == GFX9) { /* Mipmap levels and layers aren't implemented. */ assert(level == 0); @@ -1330,8 +1330,8 @@ radv_clear_htile(struct radv_cmd_buffer *cmd_buffer, const struct radv_image *im for (uint32_t l = 0; l < level_count; l++) { uint32_t level = range->baseMipLevel + l; uint64_t offset = image->offset + image->planes[0].surface.htile_offset + - image->planes[0].surface.u.gfx9.htile_levels[level].offset; - uint32_t size = image->planes[0].surface.u.gfx9.htile_levels[level].size; + image->planes[0].surface.u.gfx9.meta_levels[level].offset; + uint32_t size = image->planes[0].surface.u.gfx9.meta_levels[level].size; /* Do not clear this level if it can be compressed. */ if (!size) _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit