mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-01-02 06:40:20 +01:00
Improve usb timing accuracy
This commit is contained in:
parent
df6a3d01df
commit
847a147002
|
|
@ -636,6 +636,8 @@ void usb_handler_thread::operator()()
|
|||
// Process asynchronous requests that are pending
|
||||
libusb_handle_events_timeout_completed(ctx, &lusb_tv, nullptr);
|
||||
|
||||
u64 delay = 1'000;
|
||||
|
||||
// Process fake transfers
|
||||
if (!fake_transfers.empty())
|
||||
{
|
||||
|
|
@ -650,6 +652,13 @@ void usb_handler_thread::operator()()
|
|||
|
||||
if (transfer->expected_time > timestamp)
|
||||
{
|
||||
const u64 diff_time = transfer->expected_time - timestamp;
|
||||
|
||||
if (diff_time < delay)
|
||||
{
|
||||
delay = diff_time;
|
||||
}
|
||||
|
||||
++it;
|
||||
continue;
|
||||
}
|
||||
|
|
@ -668,7 +677,7 @@ void usb_handler_thread::operator()()
|
|||
if (handled_devices.empty())
|
||||
thread_ctrl::wait_for(500'000);
|
||||
else
|
||||
thread_ctrl::wait_for(1'000);
|
||||
thread_ctrl::wait_for(delay);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue