lunixbochs / tinygles

Software-rendered OpenGL ES
Other
79 stars 10 forks source link

Performance boost for Clutter-based application possible without HW acceleration? #9

Open ollieparanoid opened 7 years ago

ollieparanoid commented 7 years ago

Hello @lunixbochs,

the Nokia N900 phone had a desktop based on GTK+2 and Clutter called Hildon. It used a proprietary graphics driver back in the day.

Now we would like to get Hildon running on an up-to-date Linux stack (mainline kernel, updated userland) and by fully rendering in software to avoid the blob. Performance is terrible right now, even with all effects disabled. Do you think it could be improved by using tinygles instead of mesa to the point that it becomes usable again?

(More background information)

Thanks!

lunixbochs commented 7 years ago

TinyGLES was NEON-optimized for the OMAP3/A8 used in both the N900 and Pandora to exceed the limits of the SGX driver when rendering 2D UI (from the game Uplink). It is way faster than mesa (>60fps in Uplink, which uses textured quads to draw overlapping UI) and often memory-bound. It's definitely worth a try.

craftyguy commented 7 years ago

@lunixbochs

That's awesome, thank you for the quick reply too! (I didn't originally ask this question, but will likely be packaging this for our project to run on the N900 :smile: )

lunixbochs commented 7 years ago

Do you have build instructions for a desktop VM running Hildon? That would be sufficient for testing/integrating TinyGLES.

craftyguy commented 7 years ago

Definitely, we're working on this project: https://github.com/postmarketOS/pmbootstrap

In addition to various mobile devices, this OS also runs in Qemu (for x86_64). Before spending too much time on packaging it, I'll probably do a proof-of-concept on my N900 to see how it performs. From what I understand, the N900 and the Pandora shared a lot of hardware, so this is promising! Using Qemu to help with the packaging/integration is definitely helpful! I'm currently working on some other higher priority things at the moment, but will give TinyGLES a try here soon.

ollieparanoid commented 7 years ago

Optimized for the same CPU? Wow, we really got lucky with this one! Thanks for answering @lunixbochs!

Regarding your question, here are two articles which describe how to run Hildon with QEMU in postmarketOS (depends on pmbootstrap, which depends on Python 3.4+ and OpenSSL - it will compile Hildon and use binary packages from Alpine Linux):

https://wiki.postmarketos.org/wiki/Hildon https://wiki.postmarketos.org/wiki/Qemu