Hi,
I describe in the next paragraphs what I do to build application with Pharo at 50 fps. Now I am using a SDL2 window with OSWindow and not the default Pharo window for rendering. There is a fullscreen option with OSWindow, I don't use it but I've just tried it works fine.
To use Athens/Cairo I start the VM headless and I open from the code a window using the SDL2 binding (OSWindow), then I extract the window surface as a cairo surface to draw on it using Athens and I use SDL2 to manage events (mouse, keyboard). That way I don't even start morphic/WorldMorph which wastes cpu ressources.
I built this video game that way:
The game is running in Pharo 4 (pre-Spur). I configured it to run at 50 fps but from time to time some frames are dropped for performance so I would say it is running at around 48-49 fps in practice. I think it should work on the latest Pharo but you need to ask on pharo-dev how to use OSWindow. Some APIs have changed since Pharo 4. Since the latest Pharo version is now using Spur I expect the performance to be way better and I think 50 fps is definitely manageable on a laptop.
Note that this is still Pharo so if you want something which looks real-time you need to be careful about you object allocation rate in-between frame rendering.
I hope this can help.��
Regards