3 ms·
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
by vvanders 8y ago
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.
[1] https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt https://www.khronos.org/registry/OpenGL/extensions/OES/OES_E...
[2] https://community.arm.com/graphics/b/blog/posts/eglimage---updating-a-texture-without-copying-memory-under-android https://community.arm.com/graphics/b/blog/posts/eglimage---u...
- obl 8y agoNote 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.
- vvanders 8y agoYup, 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.