WIP: macos: Copy to IOSurface on present #96
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Alternative to #95, that avoids API changes.
In a release build on an M1 mac, fullscreened at 1440p, this brings the
animation
examples redraw time from about 10ms to 900μs. But thewinit
example ends up increasing to 20ms from around 18ms. This does include resizing time, but seems to still take at least a ms more even excluding that?#95 does improve the
winit
example here to 12ms, but gets 1.25ms foranimation
(that's probably since it currently allocates anIOBuffer
every single present, so it could be fixed by doing that correctly).Interesting how this version compares. There is also likely some overhead to the previous version this test isn't catching (When does it actually copy from the
CGDataProvider
to GPU? Is that later in our main loop, or does the display server handle that?).