|
|
|
@ -542,39 +542,6 @@ void GraphicsPipeline::ConfigureDraw(const RescalingPushConstant& rescaling, |
|
|
|
render_area_data = render_area.words, dynamic_state](vk::CommandBuffer cmdbuf) { |
|
|
|
if (bind_pipeline) { |
|
|
|
cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline); |
|
|
|
|
|
|
|
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 |
|
|
|
? MaxwellToVK::CullFace(dynamic_state.CullFace()) |
|
|
|
: VK_CULL_MODE_NONE; |
|
|
|
cmdbuf.SetCullModeEXT(cull_mode); |
|
|
|
cmdbuf.SetDepthTestEnableEXT(dynamic_state.depth_test_enable != 0); |
|
|
|
cmdbuf.SetDepthWriteEnableEXT(dynamic_state.depth_write_enable != 0); |
|
|
|
cmdbuf.SetDepthBoundsTestEnableEXT(dynamic_state.depth_bounds_enable != 0); |
|
|
|
cmdbuf.SetStencilTestEnableEXT(dynamic_state.stencil_enable != 0); |
|
|
|
if (dynamic_state.stencil_enable) { |
|
|
|
if (false) { |
|
|
|
} else { |
|
|
|
cmdbuf.SetStencilOpEXT(VK_STENCIL_FACE_FRONT_AND_BACK, |
|
|
|
MaxwellToVK::StencilOp(dynamic_state.front.ActionStencilFail()), |
|
|
|
MaxwellToVK::StencilOp(dynamic_state.front.ActionDepthPass()), |
|
|
|
MaxwellToVK::StencilOp(dynamic_state.front.ActionDepthFail()), |
|
|
|
MaxwellToVK::ComparisonOp(dynamic_state.front.TestFunc())); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
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 (device.IsExtExtendedDynamicState2ExtrasSupported() && UsesExtendedDynamicState2LogicOp()) { |
|
|
|
cmdbuf.SetLogicOpEXT(static_cast<VkLogicOp>(dynamic_state.logic_op.Value())); |
|
|
|
} |
|
|
|
} |
|
|
|
cmdbuf.PushConstants(*pipeline_layout, VK_SHADER_STAGE_ALL_GRAPHICS, |
|
|
|
RESCALING_LAYOUT_WORDS_OFFSET, sizeof(rescaling_data), |
|
|
|
|