I'm working on a small pygame app using a Pi 1 Model A but have noticed that it performs worse/differently as a kiosk app (run from command line without starting LXDE) than starting LXDE and running the same commands (change to the directory and call python3 with the script) in a terminal window.
How is it worse? The script renders 3 surfaces beside each other, each has a number (rendered with a freestyle font) and they increment like a timer (000 => 001 etc). There is one call to display update when a value changes (can be one value or all three, but only in cycles with a change) and only the portions of the screen containing the changed surface/s are updated. Double buffering is not enabled (found it behaved differently between the environments and wasn't benefiting from it). Running this from the GUI looks perfect and smooth, running from the CLI when more than one surface updates (e.g. 009 => 010) you can see the surfaces update one at a time, one after each other (ideally they would instantaneously all change like in the GUI).
I've done my best to optimise what I have but I can't get it fast enough, I would have assumed performance would be better without loading LXDE.
I'm wondering what the difference between these two environments for a python/pygame script is and if something can be done in the command line to run it like the GUI (...without starting the GUI as its to be a kiosk app)?