diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index ef126d0436..7be248e317 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -1476,12 +1476,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 526b0e827b..ea3598b899 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 u32(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