diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 2da8713dde..65bd76cddf 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -1450,12 +1450,13 @@ void Device::RemoveUnsuitableExtensions() { // VK_EXT_multi_draw extensions.multi_draw = features.multi_draw.multiDraw; - if (extensions.multi_draw) { + features.multi_draw.multiDraw = VK_TRUE; LOG_INFO(Render_Vulkan, "VK_EXT_multi_draw: maxMultiDrawCount={}", properties.multi_draw.maxMultiDrawCount); + } else { + features.multi_draw.multiDraw = VK_FALSE; } - RemoveExtensionFeatureIfUnsuitable(extensions.multi_draw, features.multi_draw, VK_EXT_MULTI_DRAW_EXTENSION_NAME); diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h index 5871e3c2a8..00284057ef 100644 --- a/src/video_core/vulkan_common/vulkan_device.h +++ b/src/video_core/vulkan_common/vulkan_device.h @@ -743,9 +743,10 @@ public: return Settings::values.dyna_state.GetValue() > 0; } - /// Returns true if the device supports VK_EXT_vertex_input_dynamic_state. + /// Returns true if VK_EXT_vertex_input_dynamic_state is enabled on the device. bool IsExtVertexInputDynamicStateSupported() const { - return extensions.vertex_input_dynamic_state; + return extensions.vertex_input_dynamic_state && + features.vertex_input_dynamic_state.vertexInputDynamicState; } /// Returns true if the device supports VK_EXT_shader_demote_to_helper_invocation