anv/drirc: disable Xe2 CCS drm modifiers for GTK engine
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38373>
(cherry picked from commit 2418c91537)

Conflicts:
	src/util/driconf.h
This commit is contained in:
Tapani Pälli 2025-12-02 10:58:52 +02:00 committed by Dylan Baker
parent 3460fd7807
commit 6d85a95848
6 changed files with 18 additions and 1 deletions

View file

@ -114,7 +114,7 @@
"description": "anv/drirc: disable Xe2 CCS drm modifiers for GTK engine",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -1969,6 +1969,12 @@ anv_image_init(struct anv_device *device, struct anv_image *image,
*/
isl_extra_usage_flags |= ISL_SURF_USAGE_DISABLE_AUX_BIT;
}
/* Workaround to disable XE2 CCS modifiers from drirc. */
if (device->info->ver == 20 &&
image->vk.tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT &&
device->physical->instance->disable_xe2_drm_ccs_modifiers)
isl_extra_usage_flags |= ISL_SURF_USAGE_DISABLE_AUX_BIT;
}
/* Fill out the list of view formats. */

View file

@ -19,6 +19,7 @@ static const driOptionDescription anv_dri_options[] = {
DRI_CONF_ANV_ASSUME_FULL_SUBGROUPS_WITH_SHARED_MEMORY(false)
DRI_CONF_ANV_DISABLE_FCV(false)
DRI_CONF_ANV_ENABLE_BUFFER_COMP(false)
DRI_CONF_ANV_DISABLE_DRM_AUX_MODIFIERS(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)
@ -221,6 +222,8 @@ anv_init_dri_options(struct anv_instance *instance)
driQueryOptionb(&instance->dri_options, "anv_vf_component_packing");
instance->lower_terminate_to_discard =
driQueryOptionb(&instance->dri_options, "vk_lower_terminate_to_discard");
instance->disable_xe2_drm_ccs_modifiers =
driQueryOptionb(&instance->dri_options, "anv_disable_drm_ccs_modifiers");
if (instance->vk.app_info.engine_name &&
!strcmp(instance->vk.app_info.engine_name, "DXVK")) {

View file

@ -1726,6 +1726,7 @@ struct anv_instance {
bool has_fake_sparse;
bool disable_fcv;
bool enable_buffer_comp;
bool disable_xe2_drm_ccs_modifiers;
bool compression_control_enabled;
bool anv_fake_nonlocal_memory;
bool anv_upper_bound_descriptor_pool_sampler;

View file

@ -1127,6 +1127,9 @@ TODO: document the other workarounds.
<engine engine_name_match="GTK" engine_versions="16777216:16859138">
<option name="vk_wsi_disable_unordered_submits" value="true" />
</engine>
<engine engine_name_match="GTK">
<option name="anv_disable_drm_ccs_modifiers" value="true" />
</engine>
<!--
Disable 16-bit feature on zink and angle so that GLES mediump doesn't
lower to our inefficent 16-bit shader support. No need to do so for

View file

@ -902,6 +902,10 @@
DRI_CONF_OPT_B(anv_large_workgroup_non_coherent_image_workaround, def, \
"Fixup image coherency qualifier for certain shaders.")
#define DRI_CONF_ANV_DISABLE_DRM_AUX_MODIFIERS(def) \
DRI_CONF_OPT_B(anv_disable_drm_ccs_modifiers, def, \
"Disable DRM CCS modifier usage")
/**
* \brief HASVK specific configuration options
*/