3967
|
|
|
Brandon Schaefer |
7 years ago
|
|
|
3966
|
|
|
Brandon Schaefer |
7 years ago
|
|
|
3965
|
|
|
Brandon Schaefer |
7 years ago
|
|
|
3964
|
|
|
Brandon Schaefer |
7 years ago
|
|
|
3963
|
|
|
Cemil Azizoglu |
7 years ago
|
|
|
3962
|
|
|
Andreas Pokorny |
7 years ago
|
|
|
3961
|
|
|
Alberto Aguirre |
7 years ago
|
|
|
3960
|
|
|
Alan Griffiths |
7 years ago
|
|
|
3959
|
|
|
Brandon Schaefer |
7 years ago
|
|
|
3958
|
|
|
Kevin DuBois |
7 years ago
|
|
|
3957
|
|
|
Andreas Pokorny |
7 years ago
|
|
|
3956
|
|
|
Daniel van Vugt |
7 years ago
|
|
|
3955
|
|
|
Daniel van Vugt |
7 years ago
|
|
|
3954
|
|
|
Brandon Schaefer |
7 years ago
|
|
|
3953
|
|
|
Cemil Azizoglu |
7 years ago
|
|
|
3952
|
|
Introducing client-side vsync, part 1. For dramatically lower latency and improved smoothness. Fixes LP: #1240909, LP: #1388490, LP: #1591328, LP: #1624188
Part 1 covers all users of: eglSwapBuffers mir_buffer_stream_swap_buffers_sync
Part 2 will cover the rest (mir_buffer_stream_swap_buffers) but we're not in a hurry for it as that still has working server-side vsync. Plus I think Xmir is the only user of that function at present.
Part 3 will introduce IPC to communicate hardware vsync timestamps to the client for phase correction and increased precision (although that's not a prerequisite to this).
Immediate benefits:
* Greatly reduced latency from the client to the screen. Theoretically three frames lower latency for windowed apps of a nested server like Unity8. And this has been confirmed with real measurements: https://docs.google.com/spreadsheets/d/1RbTVDbx04ohkF4-md3wAlgmxbSI1DttstnT6xdcXhZQ/pubchart?oid=1566479835&format=interactive You can also confirm using your own eyes: mir_demo_client_target
* No client/toolkit changes required.
* Latency and smoothness is no longer affected by process scheduling randomness or poor server performance. Although we presently use input resampling to work around some of the latency problem, that's not immune to latency increasing again when the server has insufficient time to keep up with the client. This approach is.
* Lower latency even than double buffering (when nested), and also without the risk of decimation when a client takes slightly too long to render. Fixes: https://bugs.launchpad.net/bugs/1240909, https://bugs.launchpad.net/bugs/1388490, https://bugs.launchpad.net/bugs/1591328, https://bugs.launchpad.net/bugs/1624188.
Approved by Alan Griffiths, Kevin DuBois, mir-ci-bot, Cemil Azizoglu.
|
Daniel van Vugt |
7 years ago
|
|
|
3951
|
|
|
Kevin DuBois |
7 years ago
|
|
|
3950
|
|
|
Daniel van Vugt |
7 years ago
|
|
|
3949
|
|
|
Daniel van Vugt |
7 years ago
|
|
|
3948
|
|
|
Alberto Aguirre |
7 years ago
|
|
|