From 2add57d0c22b4aa0e85ca1280c15b4350d1c7c03 Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Mon, 21 Nov 2022 13:37:30 -0800 Subject: [PATCH] intel: Hook up RENDER_SURFACE_STATE::DecompressInL3 The sampler's decompressor seems to lack support for some types of format re-interpretation. Use the more capable decompressor for these cases. This will be needed to avoid regressing piglit's arb_texture_view-rendering-formats in later commits. Reviewed-by: Kenneth Graunke Reviewed-by: Jianxun Zhang Part-of: --- src/intel/genxml/gen12.xml | 1 + src/intel/genxml/gen125.xml | 1 + src/intel/isl/isl_surface_state.c | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/src/intel/genxml/gen12.xml b/src/intel/genxml/gen12.xml index c4ff096..c4c0b99 100644 --- a/src/intel/genxml/gen12.xml +++ b/src/intel/genxml/gen12.xml @@ -731,6 +731,7 @@ + diff --git a/src/intel/genxml/gen125.xml b/src/intel/genxml/gen125.xml index ff9e14a..72c076f 100644 --- a/src/intel/genxml/gen125.xml +++ b/src/intel/genxml/gen125.xml @@ -774,6 +774,7 @@ + diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c index 59158f8..455e2f3 100644 --- a/src/intel/isl/isl_surface_state.c +++ b/src/intel/isl/isl_surface_state.c @@ -643,6 +643,20 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, #endif #if GFX_VER >= 12 s.MemoryCompressionEnable = info->aux_usage == ISL_AUX_USAGE_MC; + + /* The Tiger Lake PRM for RENDER_SURFACE_STATE::DecompressInL3 says: + * + * When this field is set to 1h, the associated compressible surface, + * when accessed by sampler and data-port, will be uncompressed in + * L3. If the surface is not compressible, this bit field is ignored. + * + * The sampler's decompressor seems to lack support for some types of + * format re-interpretation. Use the more capable decompressor for these + * cases. + */ + s.DecompressInL3 = + !isl_formats_have_same_bits_per_channel(info->surf->format, + info->view->format); #endif #if GFX_VER >= 9 /* Some CCS aux usages have format restrictions. The Skylake PRM doc for -- 2.7.4