Mesa (main): ac/surface: Expose modifiers capable of DCC image stores first
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Oct 11 12:24:32 UTC 2021
Module: Mesa
Branch: main
Commit: 77e5f149ebb924775d6b53d03353d0df13870f51
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=77e5f149ebb924775d6b53d03353d0df13870f51
Author: Joshua Ashton <joshua at froggi.es>
Date: Sun Sep 26 19:01:20 2021 +0100
ac/surface: Expose modifiers capable of DCC image stores first
These also have a higher compressed block size.
Signed-off-by: Joshua Ashton <joshua at froggi.es>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13056>
---
src/amd/common/ac_surface.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
index bbcef821e62..30894648fdd 100644
--- a/src/amd/common/ac_surface.c
+++ b/src/amd/common/ac_surface.c
@@ -353,6 +353,19 @@ bool ac_get_supported_modifiers(const struct radeon_info *info,
AMD_FMT_MOD_SET(DCC_INDEPENDENT_128B, 1) |
AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_128B))
+ if (info->chip_class >= GFX10_3) {
+ if (info->max_render_backends == 1) {
+ ADD_MOD(AMD_FMT_MOD | common_dcc |
+ AMD_FMT_MOD_SET(DCC_INDEPENDENT_128B, 1) |
+ AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_128B))
+ }
+
+ ADD_MOD(AMD_FMT_MOD | common_dcc |
+ AMD_FMT_MOD_SET(DCC_RETILE, 1) |
+ AMD_FMT_MOD_SET(DCC_INDEPENDENT_128B, 1) |
+ AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_128B))
+ }
+
if (info->family == CHIP_NAVI12 || info->family == CHIP_NAVI14 || info->chip_class >= GFX10_3) {
bool independent_128b = info->chip_class >= GFX10_3;
@@ -361,12 +374,6 @@ bool ac_get_supported_modifiers(const struct radeon_info *info,
AMD_FMT_MOD_SET(DCC_INDEPENDENT_64B, 1) |
AMD_FMT_MOD_SET(DCC_INDEPENDENT_128B, independent_128b) |
AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_64B))
-
- if (info->chip_class >= GFX10_3) {
- ADD_MOD(AMD_FMT_MOD | common_dcc |
- AMD_FMT_MOD_SET(DCC_INDEPENDENT_128B, 1) |
- AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_128B))
- }
}
ADD_MOD(AMD_FMT_MOD | common_dcc |
@@ -374,13 +381,6 @@ bool ac_get_supported_modifiers(const struct radeon_info *info,
AMD_FMT_MOD_SET(DCC_INDEPENDENT_64B, 1) |
AMD_FMT_MOD_SET(DCC_INDEPENDENT_128B, independent_128b) |
AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_64B))
-
- if (info->chip_class >= GFX10_3) {
- ADD_MOD(AMD_FMT_MOD | common_dcc |
- AMD_FMT_MOD_SET(DCC_RETILE, 1) |
- AMD_FMT_MOD_SET(DCC_INDEPENDENT_128B, 1) |
- AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_128B))
- }
}
ADD_MOD(AMD_FMT_MOD |
More information about the mesa-commit
mailing list