Mesa (master): amd/common: Add modifier size helper.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Feb 2 01:01:33 UTC 2021
Module: Mesa
Branch: master
Commit: 21f476920e8543ad2ceba40f18115ea9534af3b6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=21f476920e8543ad2ceba40f18115ea9534af3b6
Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date: Mon Nov 16 12:28:13 2020 +0100
amd/common: Add modifier size helper.
For use in Vulkan.
Reviewed-By: Chad Versace <chad at kiwitree.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7667>
---
src/amd/common/ac_surface.c | 16 ++++++++++++++++
src/amd/common/ac_surface.h | 3 +++
2 files changed, 19 insertions(+)
diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
index b987da21ac5..77dcb9cf1cf 100644
--- a/src/amd/common/ac_surface.c
+++ b/src/amd/common/ac_surface.c
@@ -2974,6 +2974,22 @@ uint64_t ac_surface_get_plane_stride(enum chip_class chip_class,
}
}
+uint64_t ac_surface_get_plane_size(const struct radeon_surf *surf,
+ unsigned plane)
+{
+ switch (plane) {
+ case 0:
+ return surf->surf_size;
+ case 1:
+ return surf->display_dcc_offset ?
+ surf->u.gfx9.display_dcc_size : surf->dcc_size;
+ case 2:
+ return surf->dcc_size;
+ default:
+ unreachable("Invalid plane index");
+ }
+}
+
void ac_surface_print_info(FILE *out, const struct radeon_info *info,
const struct radeon_surf *surf)
{
diff --git a/src/amd/common/ac_surface.h b/src/amd/common/ac_surface.h
index 201ef08e7d5..ae112cf02bf 100644
--- a/src/amd/common/ac_surface.h
+++ b/src/amd/common/ac_surface.h
@@ -367,6 +367,9 @@ uint64_t ac_surface_get_plane_offset(enum chip_class chip_class,
uint64_t ac_surface_get_plane_stride(enum chip_class chip_class,
const struct radeon_surf *surf,
unsigned plane);
+/* Of the whole miplevel, not an individual layer */
+uint64_t ac_surface_get_plane_size(const struct radeon_surf *surf,
+ unsigned plane);
void ac_surface_print_info(FILE *out, const struct radeon_info *info,
const struct radeon_surf *surf);
More information about the mesa-commit
mailing list