Mesa (main): ac/surface: store CMASK pitch and height to radeon_surf

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 3 07:24:06 UTC 2021


Module: Mesa
Branch: main
Commit: 1f12c3ccc1db533485a020af1891d1ecd65ad12b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1f12c3ccc1db533485a020af1891d1ecd65ad12b

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Jul 29 09:04:45 2021 +0200

ac/surface: store CMASK pitch and height to radeon_surf

Only GFX9+ is currently supported.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Acked-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12140>

---

 src/amd/common/ac_surface.c | 2 ++
 src/amd/common/ac_surface.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
index 9b9e4dd1dcd..ff7bb44a4ab 100644
--- a/src/amd/common/ac_surface.c
+++ b/src/amd/common/ac_surface.c
@@ -1903,6 +1903,8 @@ static int gfx9_compute_miptree(struct ac_addrlib *addrlib, const struct radeon_
          surf->cmask_size = cout.cmaskBytes;
          surf->cmask_alignment_log2 = util_logbase2(cout.baseAlign);
          surf->cmask_slice_size = cout.sliceSize;
+         surf->cmask_pitch = cout.pitch;
+         surf->cmask_height = cout.height;
          surf->u.gfx9.color.cmask_level0.offset = meta_mip_info[0].offset;
          surf->u.gfx9.color.cmask_level0.size = meta_mip_info[0].sliceSize;
       }
diff --git a/src/amd/common/ac_surface.h b/src/amd/common/ac_surface.h
index d6af39ec466..4f328132ff9 100644
--- a/src/amd/common/ac_surface.h
+++ b/src/amd/common/ac_surface.h
@@ -368,6 +368,8 @@ struct radeon_surf {
 
    uint32_t cmask_size;
    uint32_t cmask_slice_size;
+   uint16_t cmask_pitch; /* GFX9+ */
+   uint16_t cmask_height; /* GFX9+ */
 
    /* All buffers combined. */
    uint64_t meta_offset; /* DCC or HTILE */



More information about the mesa-commit mailing list