Re: Does gbm_bo_map() implicitly synchronise?
Christian König <[email protected]>
| Newsgroups | gmane.comp.video.mesa3d.devel |
|---|---|
| Message-ID | <[email protected]> |
Am 18.06.24 um 07:01 schrieb Pierre Ossman: > On 17/06/2024 20:18, Christian König wrote: >> Am 17.06.24 um 19:18 schrieb Pierre Ossman: >>> On 17/06/2024 18:09, Michel Dänzer wrote: >>>>> >>>>> Can I know whether it is needed or not? Or should I be cautious >>>>> and always do it? >>>> >>>> Assuming GBM in the X server uses the GPU HW driver, I'd say it >>>> shouldn't be needed. >>>> >>> >>> It does not (except the driver libgbm loads). We're trying to use >>> this in Xvnc, so it's all CPU. We're just trying to make sure the >>> applications can use the full power of the GPU to render their stuff >>> before handing it over to the X server. :) >> >> That whole approach won't work. >> >> When you don't have a HW driver loaded or at least tell the client >> that it should render into a linear buffer somehow then the data in >> the buffer will be tilled in a hw specific format. >> >> As far as I know you can't read that vendor agnostic with the CPU, >> you need the hw driver for that. >> > > I'm confused. What's the goal of the GBM abstraction and specifically > gbm_bo_map() if it's not a hardware-agnostic way of accessing buffers? There is no hardware agnostic way of accessing buffers which contain hw specific data. You always need a hw specific backend for that or use the linear flag which makes the data hw agnostic. > > In practice, we are getting linear buffers. At least on Intel and AMD > GPUs. Nvidia are being a bit difficult getting GBM working, so we > haven't tested that yet. That's either because you have a linear buffer for some reason or the hardware specific gbm backend has inserted a blit as Michel described. > I see there is the GBM_BO_USE_LINEAR flag. We have not used it yet, as > we haven't seen a need for it. What is the effect of that? Would it > guarantee what we are just lucky to see at the moment? Michel and/or Marek need to answer that. I'm coming from the kernel side and maintaining the DMA-buf implementation backing all this, but I'm not an expert on gbm. Regards, Christian. > > Regards