diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index d005fa88..bcf523e4 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -523,10 +523,16 @@ HRESULT vkd3d_create_buffer(struct d3d12_device *device, | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT; - if (heap_type == D3D12_HEAP_TYPE_DEFAULT && device->vk_info.EXT_transform_feedback) + if (heap_type == D3D12_HEAP_TYPE_DEFAULT) { - buffer_info.usage |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT - | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT; + if (device->vk_info.EXT_conditional_rendering) + buffer_info.usage |= VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT; + + if (device->vk_info.EXT_transform_feedback) + { + buffer_info.usage |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT + | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT; + } } if (heap_type == D3D12_HEAP_TYPE_UPLOAD)