mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-10 05:28:56 +02:00
[vulkan] Add InvalidateState for old topology draw
This commit is contained in:
parent
1aae75512b
commit
4a7aa1618a
2 changed files with 20 additions and 0 deletions
|
|
@ -168,6 +168,11 @@ bool Scheduler::UpdateGraphicsPipeline(GraphicsPipeline* pipeline) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pipeline->UsesExtendedDynamicState() || pipeline->UsesExtendedDynamicState2() ||
|
||||||
|
pipeline->UsesExtendedDynamicState2LogicOp()) {
|
||||||
|
state_tracker.InvalidateExtendedDynamicStates();
|
||||||
|
}
|
||||||
|
|
||||||
if (!pipeline->UsesExtendedDynamicState()) {
|
if (!pipeline->UsesExtendedDynamicState()) {
|
||||||
state.needs_state_enable_refresh = true;
|
state.needs_state_enable_refresh = true;
|
||||||
} else if (state.needs_state_enable_refresh) {
|
} else if (state.needs_state_enable_refresh) {
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,21 @@ public:
|
||||||
(*flags)[Dirty::StateEnable] = true;
|
(*flags)[Dirty::StateEnable] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InvalidateExtendedDynamicStates() {
|
||||||
|
(*flags)[Dirty::Viewports] = true;
|
||||||
|
(*flags)[Dirty::Scissors] = true;
|
||||||
|
(*flags)[Dirty::CullMode] = true;
|
||||||
|
(*flags)[Dirty::DepthCompareOp] = true;
|
||||||
|
(*flags)[Dirty::FrontFace] = true;
|
||||||
|
(*flags)[Dirty::StencilOp] = true;
|
||||||
|
(*flags)[Dirty::StateEnable] = true;
|
||||||
|
(*flags)[Dirty::PrimitiveRestartEnable] = true;
|
||||||
|
(*flags)[Dirty::RasterizerDiscardEnable] = true;
|
||||||
|
(*flags)[Dirty::DepthBiasEnable] = true;
|
||||||
|
(*flags)[Dirty::LogicOp] = true;
|
||||||
|
current_topology = INVALID_TOPOLOGY;
|
||||||
|
}
|
||||||
|
|
||||||
bool TouchViewports() {
|
bool TouchViewports() {
|
||||||
const bool dirty_viewports = Exchange(Dirty::Viewports, false);
|
const bool dirty_viewports = Exchange(Dirty::Viewports, false);
|
||||||
const bool rescale_viewports = Exchange(VideoCommon::Dirty::RescaleViewports, false);
|
const bool rescale_viewports = Exchange(VideoCommon::Dirty::RescaleViewports, false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue