Browse Source

First meow in honor of meowly

CamilleLaVey 2 days ago
parent
commit
ba9a2f387b
  1. 2
      src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
  2. 33
      src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp

2
src/video_core/renderer_vulkan/fixed_pipeline_state.cpp

@ -170,7 +170,7 @@ void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d, DynamicFe
std::ranges::transform(regs.vertex_streams, vertex_strides.begin(), [](const auto& array) {
return static_cast<u16>(array.stride.Value());
});
if (!extended_dynamic_state_2_logic_op) {
if (!extended_dynamic_state_2) {
dynamic_state.Refresh2(regs, topology_, extended_dynamic_state_2);
}
if (maxwell3d.dirty.flags[Dirty::Blending]) {

33
src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp

@ -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),

Loading…
Cancel
Save