mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-10 07:38:56 +02:00
[nvmflinger] prefer newest queued frames to reduce input latency
This commit is contained in:
parent
f0a4ac7359
commit
96e3c8dc7a
1 changed files with 11 additions and 0 deletions
|
|
@ -45,6 +45,17 @@ Status BufferQueueConsumer::AcquireBuffer(BufferItem* out_buffer,
|
|||
|
||||
auto front(core->queue.begin());
|
||||
|
||||
// prefer newest queued frame for lower input latency (if no present deadline is requested).
|
||||
if (expected_present.count() == 0 && core->queue.size() > 1) {
|
||||
while (core->queue.size() > 1) {
|
||||
const auto stale = core->queue.begin();
|
||||
if (core->StillTracking(*stale)) slots[stale->slot].buffer_state = BufferState::Free;
|
||||
core->queue.erase(stale);
|
||||
}
|
||||
core->SignalDequeueCondition();
|
||||
front = core->queue.begin();
|
||||
}
|
||||
|
||||
// If expected_present is specified, we may not want to return a buffer yet.
|
||||
if (expected_present.count() != 0) {
|
||||
constexpr auto MAX_REASONABLE_NSEC = 1000000000LL; // 1 second
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue