12 ms·
I specifically qualified it with efficiently. As in, when the surface is in the GPU memory, the software doesn't have to read it over PCIe bus and then put it b
by vetinari 6y ago
I specifically qualified it with efficiently. As in, when the surface is in the GPU memory, the software doesn't have to read it over PCIe bus and then put it back into another buffer for the encoder; but that the encoder can do zero-copy encoding in the GPU memory.
Here, Firefox uses dma-buf. Unless X11 exposes a special extension for exposing dma-buf, your client won't be able to do that.
- AshamedCaptain 6y agoYou said it yourself. I even believe that extension already exists since it must be going on inside DRI3 for some EGL/VK extensions to work right now. Don't think it worth to create an entirely new display server API for just this. And in practice, XShm-using OBS actually works better right now than this specific apparently Gnome-only dma-buf API. https://www.youtube.com/watch?v=kD70ur_xTmE https://www.youtube.com/watch?v=kD70ur_xTmE
- vetinari 6y agodma-buf is linux-specific, not Gnome specific. It is buffer management on GPUs; it is the low-level API that Mesa and libva, and yes, DRI too, build on top. Just because some specific application works better (for some values of better) on the Xshm does not say anything. In year or two, the situation can be very different, permanently.