summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Kempczyński <zbigniew.kempczynski@intel.com>2024-06-25 11:16:50 +0200
committerZbigniew Kempczyński <zbigniew.kempczynski@intel.com>2024-06-27 19:14:33 +0200
commit676b8e660cadae8ffb29a45b12ad5b53ef228b6a (patch)
tree1c9f5911280b29ce258f01972cf96b540340ece3
parent87ec1f4d59a34925b37d844410d552f4a58d22e8 (diff)
lib/rendercopy_gen9: Use AUX_NONE for platforms with unified compression
For non-MSAA surfaces when unified compression is configured in PAT auxiliary surfaces must be set to AUX_NONE. I haven't noticed this on Xe2+ before as it setting was silently ignored by hardware but setting to AUX_CCS_E is incorrect and may fail on newer platforms. Cc: Stuart Summers <stuart.summers@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://lore.kernel.org/r/20240625091651.131301-1-zbigniew.kempczynski@intel.com Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
-rw-r--r--lib/rendercopy_gen9.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c
index 726f1a087..62a365f3c 100644
--- a/lib/rendercopy_gen9.c
+++ b/lib/rendercopy_gen9.c
@@ -229,7 +229,10 @@ gen9_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int is_dst,
if (buf->compression == I915_COMPRESSION_MEDIA)
ss->ss7.tgl.media_compression = 1;
else if (buf->compression == I915_COMPRESSION_RENDER) {
- ss->ss6.aux_mode = 0x5; /* AUX_CCS_E */
+ if (AT_LEAST_GEN(ibb->devid, 20))
+ ss->ss6.aux_mode = 0x0; /* AUX_NONE, unified compression */
+ else
+ ss->ss6.aux_mode = 0x5; /* AUX_CCS_E */
if (buf->ccs[0].stride) {