An open API service indexing awesome lists of open source software.

https://github.com/mchalain/dma-buf-texture-sharing

fork from https://gitlab.com/blaztinn/dma-buf-texture-sharing/
https://github.com/mchalain/dma-buf-texture-sharing

dmabuf eglexportdmabufimagemesa framebuffer opengl shared

Last synced: 30 days ago
JSON representation

fork from https://gitlab.com/blaztinn/dma-buf-texture-sharing/

Awesome Lists containing this project

README

          

# Example of inter-process texture sharing with DMA-BUF

**Note:** This version share the server's window with the client and not the texture used by the server.

An example of how to share a GL/GLES texture in EGL context between different processes by using DMA-BUF.

Detailed explanation is in [this blog post](https://blaztinn.gitlab.io/post/dmabuf-texture-sharing/).

Prerequisites:

- Linux OS (for dma-buf and [unix domain sockets](https://en.wikipedia.org/wiki/Unix_domain_socket))
- EGL extensions:
- [EGL_MESA_image_dma_buf_export](https://www.khronos.org/registry/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt)
- [EGL_EXT_image_dma_buf_import](https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt)
- GLES extensions:
- [GL_OES_EGL_image_external](https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt)

Build:

``` bash
$ make
```

Run:

``` bash
# Terminal 1
$ ./dmabufshare server

# Terminal 2
$ ./dmabufshare client
```