[vulkan] BindVertexBuffers2EXT reset per pipeline configuration
This commit is contained in:
parent
47d6360038
commit
a2d830e51b
|
|
@ -168,6 +168,10 @@ bool Scheduler::UpdateGraphicsPipeline(GraphicsPipeline* pipeline) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pipeline->UsesExtendedDynamicState() && !pipeline->HasDynamicVertexInput()) {
|
||||||
|
state_tracker.InvalidateVertexBufferState();
|
||||||
|
}
|
||||||
|
|
||||||
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) {
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,13 @@ public:
|
||||||
(*flags)[Dirty::StateEnable] = true;
|
(*flags)[Dirty::StateEnable] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InvalidateVertexBufferState() {
|
||||||
|
(*flags)[Dirty::VertexBuffers] = true;
|
||||||
|
for (int index = Dirty::VertexBuffer0; index <= Dirty::VertexBuffer31; ++index) {
|
||||||
|
(*flags)[index] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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…
Reference in New Issue