Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Experimental integration with Achoreographer #703

Closed
wants to merge 3 commits into from

Conversation

DJMcNab
Copy link
Member

@DJMcNab DJMcNab commented Sep 26, 2024

This is an alternative to #674.

It has significantly better latency performance, with a few peculiar behaviours I can't quite reason about. In particular, it seems to like falling back to 45 fps, but not consistently. More experimentation is needed, I think.

Overall, for the amount of code, the latency reduction is excellent. With this:
trace from Android GPU inspector, showing three well-paced frames
Total latency: ~33ms-43ms

vs without this:
trace from Android GPU inspector, showing three poorly-paced frames. The image is much wider than the previous image
Total latency. Highly variable: ~43ms-53ms

In both of these cases, 16ms is due to compositing, and ~10ms is due to rendering. That is, this integration still leaves some latency on the table, because the callback arrives at vsync, but our rendering doesn't take all of the time the next compositing time.

@DJMcNab
Copy link
Member Author

DJMcNab commented Sep 27, 2024

I've been doing some more thinking about this - this actually needs to be a component of/complement to #674.

The Android side docs are kind of terrible, but AChoreographer is extremely useful for us to have.

@DJMcNab DJMcNab closed this Sep 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant