diff --git a/.pick_status.json b/.pick_status.json
index ed21bdccfc9..e97131ae56c 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -754,7 +754,7 @@
"description": "anv: disable CCS for Source2 games on Xe2",
"nominated": true,
"nomination_type": 4,
- "resolution": 0,
+ "resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index e988569c9a6..aada27472ed 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -80,6 +80,7 @@ static const driOptionDescription anv_dri_options[] = {
DRI_CONF_VK_XWAYLAND_WAIT_READY(false)
DRI_CONF_ANV_ASSUME_FULL_SUBGROUPS(0)
DRI_CONF_ANV_DISABLE_FCV(false)
+ DRI_CONF_ANV_DISABLE_XE2_CCS(false)
DRI_CONF_ANV_EXTERNAL_MEMORY_IMPLICIT_SYNC(true)
DRI_CONF_ANV_FORCE_GUC_LOW_LATENCY(false)
DRI_CONF_ANV_SAMPLE_MASK_OUT_OPENGL_BEHAVIOUR(false)
@@ -2418,6 +2419,9 @@ anv_physical_device_try_create(struct vk_instance *vk_instance,
goto fail_fd;
}
+ if (devinfo.ver == 20 && instance->disable_xe2_ccs)
+ intel_debug |= DEBUG_NO_CCS;
+
/* Disable Wa_16013994831 on Gfx12.0 because we found other cases where we
* need to always disable preemption :
* - https://gitlab.freedesktop.org/mesa/mesa/-/issues/5963
@@ -2758,6 +2762,8 @@ anv_init_dri_options(struct anv_instance *instance)
instance->enable_tbimr = driQueryOptionb(&instance->dri_options, "intel_tbimr");
instance->disable_fcv =
driQueryOptionb(&instance->dri_options, "anv_disable_fcv");
+ instance->disable_xe2_ccs =
+ driQueryOptionb(&instance->dri_options, "anv_disable_xe2_ccs");
instance->external_memory_implicit_sync =
driQueryOptionb(&instance->dri_options, "anv_external_memory_implicit_sync");
instance->compression_control_enabled =
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index a1788d11d59..66873879fca 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -1274,6 +1274,7 @@ struct anv_instance {
unsigned force_vk_vendor;
bool has_fake_sparse;
bool disable_fcv;
+ bool disable_xe2_ccs;
bool compression_control_enabled;
bool anv_fake_nonlocal_memory;
diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf
index 033b4cd89dc..b9e2e17996e 100644
--- a/src/util/00-mesa-defaults.conf
+++ b/src/util/00-mesa-defaults.conf
@@ -1251,6 +1251,12 @@ TODO: document the other workarounds.
+
+
+
+