-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the PlayEm wiki!
Looked at the screen with PlayEm doing its thing while playing the latest Kaufmann set from Fusion 2024 and was really pleased with the results of the visuals synchronising improvements. It finally feels just right, no matter if running on a 30hz 4k display, a 100hz widescreen or the native, ProMotion screen of my MacBook Pro.
Quite some time went into profiling and unraveling code-paths to minimise state changes on the screen. Results are great and it seems almost absurd by now to attempt to implement the scrolling wave display in Metal. That is something I briefly dove into until I found some low hanging fruits for optimising in the CoreAnimation code. CoreAnimation is a terrifically well optimised framework - beating that in my own Metal implementation seems totally possible but not really worth it.
The final touch for perfection then came from switching from the "old school" and limited CVDisplayLink
towards the new, more flexible and deterministic CADisplayLink
. That in turn made PlayEm rely on macOS 14.0 features - raising the bar right here.
Next step, dynamic tempo tweaking using librubberband ...