Module: vkd3d Branch: master Commit: ae2219a7f72d9d5801c8ae4144e7730a390550b9 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=ae2219a7f72d9d5801c8ae41...
Author: Conor McCarthy cmccarthy@codeweavers.com Date: Wed Mar 23 00:33:00 2022 +1000
vkd3d: Do not enable Vulkan-backed descriptor heaps if required update-after-bind features are missing.
descriptorBindingUniformBufferUpdateAfterBind is false for Intel Skylake (and maybe others).
Signed-off-by: Conor McCarthy cmccarthy@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/vkd3d/device.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index bd471a72..459aa615 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -1657,7 +1657,12 @@ static HRESULT vkd3d_init_device_caps(struct d3d12_device *device, * use only enough descriptors for the descriptor tables of the currently bound * root signature, and don't require a 32-bit push constant for each table. */ device->use_vk_heaps = vulkan_info->EXT_descriptor_indexing - && !(device->vkd3d_instance->config_flags & VKD3D_CONFIG_FLAG_VIRTUAL_HEAPS); + && !(device->vkd3d_instance->config_flags & VKD3D_CONFIG_FLAG_VIRTUAL_HEAPS) + && descriptor_indexing->descriptorBindingUniformBufferUpdateAfterBind + && descriptor_indexing->descriptorBindingSampledImageUpdateAfterBind + && descriptor_indexing->descriptorBindingStorageImageUpdateAfterBind + && descriptor_indexing->descriptorBindingUniformTexelBufferUpdateAfterBind + && descriptor_indexing->descriptorBindingStorageTexelBufferUpdateAfterBind;
if (device->use_vk_heaps) vkd3d_device_vk_heaps_descriptor_limits_init(&vulkan_info->descriptor_limits,