Browse Source

[test] Change forcerd order for CompareMask + forced refresh/ emit

lizzie/vkexperiments1-highp-fucked
CamilleLaVey 5 days ago
committed by lizzie
parent
commit
15d575aa31
  1. 6
      src/video_core/renderer_vulkan/vk_rasterizer.cpp
  2. 4
      src/video_core/renderer_vulkan/vk_state_tracker.h

6
src/video_core/renderer_vulkan/vk_rasterizer.cpp

@ -1075,7 +1075,6 @@ void RasterizerVulkan::UpdateDynamicStates() {
UpdateDepthBias(regs);
UpdateBlendConstants(regs);
UpdateDepthBounds(regs);
UpdateStencilFaces(regs);
UpdateLineWidth(regs);
UpdateLineStipple(regs);
@ -1094,6 +1093,8 @@ void RasterizerVulkan::UpdateDynamicStates() {
}
}
UpdateStencilFaces(regs);
// EDS2: PrimitiveRestart, RasterizerDiscard, DepthBias enable/disable
if (device.IsExtExtendedDynamicState2Supported() && pipeline && pipeline->UsesExtendedDynamicState2()) {
UpdatePrimitiveRestartEnable(regs);
@ -1640,6 +1641,9 @@ void RasterizerVulkan::UpdateStencilTestEnable(Tegra::Engines::Maxwell3D::Regs&
if (!state_tracker.TouchStencilTestEnable()) {
return;
}
if (regs.stencil_enable != 0) {
state_tracker.ResetStencilState();
}
scheduler.Record([enable = regs.stencil_enable](vk::CommandBuffer cmdbuf) {
cmdbuf.SetStencilTestEnableEXT(enable);
});

4
src/video_core/renderer_vulkan/vk_state_tracker.h

@ -170,6 +170,10 @@ public:
return ExchangeCheck(back.compare_mask, new_value) || stencil_reset;
}
void ResetStencilState() {
stencil_reset = true;
}
void ClearStencilReset() {
stencil_reset = false;
}

Loading…
Cancel
Save