Actions
Emulator Issues #12852
openSupport Asynchronous Presentation
Status:
Accepted
Priority:
Normal
Assignee:
-
% Done:
0%
Operating system:
N/A
Issue type:
Feature request
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
Yes
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
Description
We need to support Asynchronous Presentation. It isn't that hard (so I'm told by a graphics dev) and it has a very long list of benefits that it would provide for Dolphin.
- Resolves frame pacing issues for non-60 hertz titles.
- Resolves presentation issues and our bad frame pacing on non-60hz panels.
- Improves frame time consistency.
- Improves accuracy by no longer blocking the rendering thread while presentation is waiting on vsync, which is closer to how VI actually works.
- Improves performance by not stalling the GPU as much, as presentation is no longer blocking the render thread. This is a minor benefit for PC but HUGE for mobile.
- Improves fluidity of interacting with onscreen rendering elements, such as the fps counter, netplay chat, and upcoming projects.
- Allows us to decouple post-processing and compositing from EFB/XFB, allowing for more post processing options and flexibility.
- Allows for interacting with onscreen rendering elements without requiring a game to be running.
- Allows us to know when the rendering thread is going to give us a frame, and we can calculate when the host compositor will consume the frame. This lets us optimize the crap out of frame timing and frame pacing. For example, we could delay giving the compositor the frame up until the last moment within jitter period to actually consume at the absolute optimal time for pristine frame pacing.
Actions