mirror of
https://github.com/visgl/luma.gl.git
synced 2025-12-08 17:36:19 +00:00
1.3 KiB
1.3 KiB
Using GPU Buffers
Buffer Operations
The ability to copy memory between CPU, buffers and textures
| Dimension | WebGPU | WebGL2 | WebGL1 | Description |
|---|---|---|---|---|
writeBuffe |
✅ | ✅ | ✅ | Read a buffer synchronously |
readBuffer (sync) |
❌ | ✅ | ✅ | Read a buffer synchronously |
readBuffer (async) |
✅ | ❌ * | ❌ * | Read a buffer asynchronously |
copyBufferToBuffer |
✅ | ✅ | ❌ | Copy a buffer to another buffer without CPU roundtrip |
copyBufferToTexture |
✅ | ✅ | ❌ | Copy a buffer to a texture without CPU roundtrip |
copyTextureToBuffer |
✅ | ✅ | ❌ | Copy a buffer to a texture without CPU roundtrip |
Remarks:
- A WebGL extension does exist that enables asynchronous buffer reads, but it is not implemented on MacOS which is the primary development environment for luma.gl.
- Asynchronous reads are emulated by luma.gl by providing a Promise style API. The actual reads are still asynchronous though.