From 007ad9f429ef6be19a54040d0059fffa8b4a5c1a Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 4 May 2020 13:40:01 +0100 Subject: [PATCH] Add spec-required features in 1.2 features struct * If we add this struct to enable buffer device address we must also enable any other features the spec requires. --- .../driver/vulkan/wrappers/vk_device_funcs.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp index 6b327832b..6b30fc1a8 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp @@ -2793,6 +2793,22 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi { vk12Features.bufferDeviceAddress = VK_TRUE; + // enable any features that the spec requires + if(Extensions.contains(VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME)) + vk12Features.drawIndirectCount = VK_TRUE; + + if(Extensions.contains(VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME)) + vk12Features.samplerMirrorClampToEdge = VK_TRUE; + + if(Extensions.contains(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME)) + vk12Features.descriptorIndexing = VK_TRUE; + + if(Extensions.contains(VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME)) + vk12Features.samplerFilterMinmax = VK_TRUE; + + if(Extensions.contains(VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME)) + vk12Features.shaderOutputLayer = VK_TRUE; + vk12Features.pNext = (void *)createInfo.pNext; createInfo.pNext = &vk12Features; }