@TakeV so you have a few components:
- libsrv_init, which loads the operating system for the gpu, which of course is a thing, it does a bunch of allocations for both instruction sets the gpu supports, patches some addresses around, builds a "script" and sends the script off to the kernel to be executed to get the gpu running
- libsrv_um, which would be like libdrm(vendor) in a modern linux system, except it also implements a bunch of random large abstractions over kernel functions, including an abstraction of a "kick" that is really complicated and shuffles around massive amounts of data, this library owns the large amount of chunks of gpu memory for reasons i do not yet quite understand, and a lot of them are filled with garbage
and after this you have your actual opengl libraries, which among other things use a few others like the glsl compiler
in general it's not utterly terrible but it could be quite a bit better