I'd be curious if having to upload textures is just a feature that's a hold-over from a history discrete desktop GPUs.
Videogame consoles have been doing "zero-copy" textures since they existed(except if you're on the PS3, but we won't go there). You also have things like EGL_image_external[1][2] that get you the same thing in OpenGL ES.
Note that even if you share DRAM with the graphic chip, you may take an extra step anyway to rearrange the texture in a tiled format since it's more efficient for sampling.
If you really care about load time you can decode the image directly in a tiled layout in software but that's more annoying.
Yup, in games we used to call this "asset cooking" where you target the platform specific texture compression in addition to tiling that you get as a part of that format.
You get a nice 3-6x memory savings plus put less pressure on the texture samplers as memory bandwidth drops as well.
Are there any performance benchmarks comparing ozone-gbm vs ozone-wayland ? It seems that the implementation that the article talks about is moot if the Wayland implementation has near equivalent performance..since the hardware layers are abstracted out.
In which case, this is only relevant for architecture that Wayland does not target. Most Intel desktops are supported by Wayland.
> Hardware overlay is not only for video, but also for rendering Android applications that run on a hardware overlay plane, such as the Wayland client of Chrome OS.
What?
What is a "Wayland client of Chrome OS" and how is it an Android application??
The Wayland compositor was added to the Chrome OS UI to support Android, but it was very convenient for us to glob onto that for the Linux desktop apps support.
Yes, those are the userspace drivers I was using. r1300 and r1400 are older than either the gru or mainstream kernels. It's a moving target, and rock chip hasn't been keeping up.
Intel's work is focused on the lower layers of the graphics stack, and removing the inefficiencies of older (X11 for example) architectures.
Servo is for rendering HTML, that is, taking HTML markup, and displaying the paragraphs, tables and whatnot graphically. So it is operating at a higher level.