Reset previous buffer label

This commit is contained in:
Pavel 2025-03-21 10:23:39 +03:00
parent c19b692a66
commit 4ac70e4a83
2 changed files with 7 additions and 3 deletions

View File

@ -63,6 +63,7 @@ void VideoOutDriver::Close(s32 handle) {
main_port.is_open = false;
main_port.flip_rate = 0;
main_port.prev_index = -1;
ASSERT(main_port.flip_events.empty());
}
@ -190,11 +191,13 @@ void VideoOutDriver::Flip(const Request& req) {
}
}
// Reset flip label
if (req.index != -1) {
port->buffer_labels[req.index] = 0;
// Reset prev flip label
if (port->prev_index != -1) {
port->buffer_labels[port->prev_index] = 0;
port->SignalVoLabel();
}
// save to prev buf index
port->prev_index = req.index;
}
void VideoOutDriver::DrawBlankFrame() {

View File

@ -32,6 +32,7 @@ struct VideoOutPort {
std::condition_variable vo_cv;
std::condition_variable vblank_cv;
int flip_rate = 0;
int prev_index = -1;
bool is_open = false;
bool is_mode_changing = false; // Used to prevent flip during mode change