4 ms·
> those will try to accelerate with XRender if that's available The XRender extension does all the rendering client-side. The one exception are glyphs which ar
by sprash 6y ago
> those will try to accelerate with XRender if that's available
The XRender extension does all the rendering client-side. The one exception are glyphs which are rendered by the client only once and than stored in the server.
XRender also does not solve the problem that a line from A to B will/should look completely different on displays with different dpi / color space / subpixel arrangement.
> if you have any GL/Vulkan usage in your application
The original implementation of OpenGL on X11 was GLX by Sgi which serialized all the OpenGL commands and was completely network transparent as a result. Considering the fact that all the communication with the GPU is serialized via PCIe anyways there is no reason this shouldn't work with reasonable performance today when done right.
- cycloptic 6y ago>The XRender extension does all the rendering client-side. I'm not sure where you heard this, but it's not correct, you might consider checking the extension spec and the implementation in the server: https://www.x.org/releases/X11R7.7/doc/renderproto/renderproto.txt https://www.x.org/releases/X11R7.7/doc/renderproto/renderpro... https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/render/ https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/re... The reason why it's not used in all cases is because it doesn't map 1:1 to cairo and there are things missing, e.g. curves probably being the most important. You would have to ask Keith for a definitive answer why this is since he wrote both XRender and Cairo. (I assume it's because Cairo already included the necessary tessellation steps at the time) Indirect GLX does work great for simple use cases, once you start to add textures into the equation the amount of bandwidth used would probably make it unusable over the network. There has been no serious work in getting indirect GLX working past OpenGL 1.x. I think another one of the main problems is that nobody really came up with a good way for GL extensions to work well there, the server needs to manually add an implementation for every extension you want to use.