vkd3d: Add some missing bindless feature checks.

Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
This commit is contained in:
Philip Rebohle 2020-03-18 13:58:16 +01:00 committed by Hans-Kristian Arntzen
parent 2ffb5396cc
commit 95c1faeeb9
1 changed files with 5 additions and 0 deletions

View File

@ -2865,18 +2865,23 @@ static uint32_t vkd3d_bindless_state_get_bindless_flags(struct d3d12_device *dev
if (!vk_info->EXT_descriptor_indexing ||
!device_info->descriptor_indexing_features.runtimeDescriptorArray ||
!device_info->descriptor_indexing_features.descriptorBindingPartiallyBound ||
!device_info->descriptor_indexing_features.descriptorBindingUpdateUnusedWhilePending ||
!device_info->descriptor_indexing_features.descriptorBindingVariableDescriptorCount)
return 0;
if (device_info->descriptor_indexing_properties.maxPerStageDescriptorUpdateAfterBindSampledImages >= 1000000 &&
device_info->descriptor_indexing_features.descriptorBindingSampledImageUpdateAfterBind &&
device_info->descriptor_indexing_features.descriptorBindingUniformTexelBufferUpdateAfterBind &&
device_info->descriptor_indexing_features.shaderSampledImageArrayNonUniformIndexing &&
device_info->descriptor_indexing_features.shaderUniformTexelBufferArrayNonUniformIndexing)
flags |= VKD3D_BINDLESS_SAMPLER | VKD3D_BINDLESS_SRV;
if (device_info->descriptor_indexing_properties.maxPerStageDescriptorUpdateAfterBindUniformBuffers >= 1000000 &&
device_info->descriptor_indexing_features.descriptorBindingUniformBufferUpdateAfterBind &&
device_info->descriptor_indexing_features.shaderUniformBufferArrayNonUniformIndexing)
flags |= VKD3D_BINDLESS_CBV;
else if (device_info->descriptor_indexing_properties.maxPerStageDescriptorUpdateAfterBindStorageBuffers >= 1000000 &&
device_info->descriptor_indexing_features.descriptorBindingStorageBufferUpdateAfterBind &&
device_info->descriptor_indexing_features.shaderStorageBufferArrayNonUniformIndexing)
flags |= VKD3D_BINDLESS_CBV | VKD3D_BINDLESS_CBV_AS_SSBO;