From f734e2a042e3cee94fb8200e8baf34a81c5de46e Mon Sep 17 00:00:00 2001 From: Dongwon Kim Date: Thu, 27 Jun 2019 09:54:37 -0700 Subject: [PATCH] anv: disable repacking for compression for applicable gen set bit15 (Disable Repacking for Compression) of CACHE_MODE_0 register if the gen attribute, 'disable_ccs_repack' is set. Signed-off-by: Dongwon Kim Reviewed-by: Anuj Phogat --- src/intel/vulkan/genX_state.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c index c81de9156c7..496c63afa67 100644 --- a/src/intel/vulkan/genX_state.c +++ b/src/intel/vulkan/genX_state.c @@ -213,6 +213,24 @@ genX(init_device_state)(struct anv_device *device) } #endif +#if GEN_GEN >= 11 + /* hardware specification recommends disabling repacking for + * the compatibility with decompression mechanism in display controller. + */ + if (device->info.disable_ccs_repack) { + uint32_t cache_mode_0; + anv_pack_struct(&cache_mode_0, + GENX(CACHE_MODE_0), + .DisableRepackingforCompression = true, + .DisableRepackingforCompressionMask = true); + + anv_batch_emit(&batch, GENX(MI_LOAD_REGISTER_IMM), lri) { + lri.RegisterOffset = GENX(CACHE_MODE_0_num); + lri.DataDWord = cache_mode_0; + } + } +#endif + /* Set the "CONSTANT_BUFFER Address Offset Disable" bit, so * 3DSTATE_CONSTANT_XS buffer 0 is an absolute address. * -- 2.30.2