Joshua Ashton
a8592be47d
vblankmanager: Push back drawtime if we are compositing
...
Avoids getting into a feedback loop with clocks when we need to composite.
Fixes stutter when using FSR on Steam Deck.
2022-08-16 23:13:56 +00:00
Joshua Ashton
4ed0c26364
vblankmanager: Nuke FPS limiter code for now
...
Not baked enough right now, needs a rework for several reasons.
Keeps dynamic refresh.
2022-02-17 21:58:14 +00:00
Joshua Ashton
7ec498af0a
vblankmanager: Track latent frames
2022-02-14 19:15:52 +00:00
Joshua Ashton
561d7c4552
vblankmanager: Tune vblank redzone values
...
Couldn't do the other thing, causes some wackiness when compositing.
2022-02-14 13:48:12 +00:00
Joshua Ashton
d3b5a758d1
vblankmanager: Put some of the vblank redzone into a min value
...
Just matters that we call drmAtomicCommit before 1.6ms, we can keep this value more stable for 99% of cases this way.
2022-02-13 18:35:59 +00:00
Joshua Ashton
a5c660e54f
vblankmanager: More value tuning
...
Based on some rough data across a variety of games that are both GPU bound and also ones that are very not and cause GPU clocks to vary wildly
2022-02-12 11:54:51 +00:00
Joshua Ashton
e53f986048
vblankmanager: Tune FPS limiter and dynamic vblank heuristics
2022-02-11 05:28:03 +00:00
Joshua Ashton
d759bd5efd
vblankmanager: Fix shutting down fps limiter thread
...
Closes : #406
2022-02-10 02:34:03 +00:00
Joshua Ashton
c5ab6f388b
vblankmanager: Implement FPS limiter by strategic buffer withholding
2022-02-09 00:34:58 +00:00
Joshua Ashton
0bc3a2493d
steamcompmgr: Add tuneables for vblank red zone + decay rate
2022-01-31 23:49:39 +00:00
Joshua Ashton
797ee59cbb
vblankmanager: Estimate draw buffer time based on max rolling average draw time
...
Handles spikes much better and allows us to have a lower buffer when not needed.
2022-01-31 23:49:39 +00:00
Joshua Ashton
a659fef806
drm: Use vblank time from page flip handler
2022-01-31 23:49:39 +00:00
Simon Ser
470756029d
Stop using X11 events for vblankmanager
...
Instead, use a pipe. Check if the pipe is readable in the
steamcompmgr event loop.
This avoids a roundtrip through the X11 server.
Closes: https://github.com/Plagman/gamescope/issues/201
2021-06-09 18:42:38 +02:00
Pierre-Loup A. Griffais
4ca73da9f6
vblankmanager: initial system to let steamcompmgr know when to repaint
...
For now just mark one repaint per refresh interval without any particular
alignment, as that can be hard to get in nested. We'll use the display
timing extensions for that later.
We'll have it align properly in embedded mode soon.
2020-01-26 14:59:51 -08:00