From 8c6aac3deb06ec11b4e03bad000a059e268ebc09 Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Mon, 18 Oct 2021 15:55:31 +0200 Subject: [PATCH] vkd3d: Hack in config for disabling sparse support. --- include/vkd3d.h | 1 + libs/vkd3d/device.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/include/vkd3d.h b/include/vkd3d.h index 274ab301..d19f24ab 100644 --- a/include/vkd3d.h +++ b/include/vkd3d.h @@ -76,6 +76,7 @@ enum vkd3d_config_flags VKD3D_CONFIG_FLAG_FORCE_HOST_CACHED = 0x00002000, VKD3D_CONFIG_FLAG_DXR11 = 0x00004000, VKD3D_CONFIG_FLAG_FORCE_NO_INVARIANT_POSITION = 0x00008000, + VKD3D_CONFIG_FLAG_DISABLE_SPARSE = 0x00010000, }; typedef HRESULT (*PFN_vkd3d_signal_event)(HANDLE event); diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 4be50350..1b8c6aaa 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -534,6 +534,7 @@ static const struct vkd3d_debug_option vkd3d_config_options[] = {"log_memory_budget", VKD3D_CONFIG_FLAG_LOG_MEMORY_BUDGET}, {"force_host_cached", VKD3D_CONFIG_FLAG_FORCE_HOST_CACHED}, {"no_invariant_position", VKD3D_CONFIG_FLAG_FORCE_NO_INVARIANT_POSITION}, + {"disable_sparse", VKD3D_CONFIG_FLAG_DISABLE_SPARSE}, }; static void vkd3d_config_flags_init_once(void) @@ -4729,6 +4730,9 @@ static D3D12_TILED_RESOURCES_TIER d3d12_device_determine_tiled_resources_tier(st const VkPhysicalDeviceSparseProperties *sparse_properties = &device->device_info.properties2.properties.sparseProperties; const VkPhysicalDeviceFeatures *features = &device->device_info.features2.features; + if (vkd3d_config_flags & VKD3D_CONFIG_FLAG_DISABLE_SPARSE) + return D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED; + if (!features->sparseBinding || !features->sparseResidencyAliased || !features->sparseResidencyBuffer || !features->sparseResidencyImage2D || !sparse_properties->residencyStandard2DBlockShape ||