Originally posted by Vash63
View Post
1. Only one thread can access the graphic subsystem; you cannot touch the GPU from multiple threads
2. There is no such thing as a "JS extension": all the code written in JavaScript is running in the same context (that's what allows writing extensions in the first place), and all the JavaScript code ends up rendering something — either directly or indirectly
3a. You cannot move things in separate threads in the hope the garbage collection won't stall the compositing thread because you cannot free a resource created inside a thread from another thread; the Shell has multiple windowing system resources, which means that they have to be freed in the same thread that created them, which happens to be the compositing thread
3b. If you think this would go away with a different language, you're sorely mistaken
4. Anything that can be moved to a separate thread — input polling, I/O — is either in the process of being moved there, or already moved; some things, like uploading texture data to the GPU, can cause stalls, but they need to happen on the main thread because OpenGL works that way
Comment