diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index fab2966e6d..34a99dabbf 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp @@ -543,7 +543,7 @@ void GraphicsPipeline::ConfigureDraw(const RescalingPushConstant& rescaling, if (bind_pipeline) { cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline); - if (UsesExtendedDynamicState()) { + if (device.IsExtExtendedDynamicStateSupported() && UsesExtendedDynamicState()) { cmdbuf.SetDepthCompareOpEXT(MaxwellToVK::ComparisonOp(dynamic_state.DepthTestFunc())); cmdbuf.SetFrontFaceEXT(MaxwellToVK::FrontFace(dynamic_state.FrontFace())); VkCullModeFlags cull_mode = dynamic_state.cull_enable @@ -566,13 +566,13 @@ void GraphicsPipeline::ConfigureDraw(const RescalingPushConstant& rescaling, } } - if (UsesExtendedDynamicState2()) { + if (device.IsExtExtendedDynamicState2Supported() && UsesExtendedDynamicState2()) { cmdbuf.SetPrimitiveRestartEnableEXT(dynamic_state.primitive_restart_enable != 0); cmdbuf.SetRasterizerDiscardEnableEXT(dynamic_state.rasterize_enable == 0); cmdbuf.SetDepthBiasEnableEXT(dynamic_state.depth_bias_enable != 0); } - if (UsesExtendedDynamicState2LogicOp()) { + if (device.IsExtExtendedDynamicState2ExtrasSupported() && UsesExtendedDynamicState2LogicOp()) { cmdbuf.SetLogicOpEXT(static_cast(dynamic_state.logic_op.Value())); } }