There’s https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26038. It is quite appealing to me considering a VK only scenario.
On Thu, Nov 2, 2023 at 5:50 AM Srinivas Pullakavi (QUIC) < quic_spull...@quicinc.com> wrote: > Hi Rob, > > Thanks for your inputs. > > We are planning to use DMA-Buf for GBM backend. DMA-buf supported heaps > are listed in /dev/dma_heap/ > Gbm backend selects the best heap based on usage. For example: Secure > buffers will be allocated from secure heap. > > Sample output: > # ls /dev/dma_heap > reserved system > > Sample code to allocate a buffer from system heap: > int heap_fd = open(/dev/dma_heap/system, O_RDONLY | O_CLOEXEC)) > struct dma_heap_allocation_data heap_data { > .len = size, // length of data to be > allocated in bytes > .fd_flags = O_RDWR | O_CLOEXEC, // permissions for the > memory to be allocated > }; > int status = ioctl(heap_fd, DMA_HEAP_IOCTL_ALLOC, &heap_data) > if (status == 0) { > int buffer_fd = heap_data.fd; > } > > In this case, there is no dependency on display / Graphics driver. But > still GBM create device expects a device fd to be passed. > > Can we make it optional to pass device fd ? > > Thanks, > Srinivas > > -----Original Message----- > From: Rob Clark <robdcl...@gmail.com> > Sent: Tuesday, October 24, 2023 1:06 AM > To: Srinivas Pullakavi (QUIC) <quic_spull...@quicinc.com> > Cc: mesa-dev@lists.freedesktop.org > Subject: Re: GBM as standalone buffer allocator > > On Mon, Oct 23, 2023 at 6:22 AM Srinivas Pullakavi (QUIC) < > quic_spull...@quicinc.com> wrote: > > > > Hi, > > > > > > > > We are planning to enhance GBM as a standalone buffer allocator, which > > can be used for all multi-media clients. Ex: video, camera, display > > etc; > > > > > > > > GBM create device expects a file descriptor to be passed, which points > to drm node. This brings in a dependency on display for buffer allocation. > On headless devices where display driver is not present, GBM cannot be used > for buffer allocations. E.g. Recording cases where pipeline is setup > between Camera, Video, Graphics. > > > > Note that you need some sort of device to allocate buffers from. With > mesa and upstream kernel, that would be the drm device. (However as Adam > points out, a drm device does not necessarily need a display.. > for example, several vendors have compute-only GPUs (pci) which have no > display outputs.) > > You might want to look at ChromeOS's minigbm. It already handles these > cases (buffer sharing across display/gpu/video/camera). > > BR, > -R > > [1] https://chromium.googlesource.com/chromiumos/platform/minigbm/ > > > > > Could you please share your comments on what will be a good design to > make GBM flexible for above? > > > > > > > > Thanks, > > > > Srinivas > > > > >