Re: Does gbm_bo_map() implicitly synchronise?

Christian König <[email protected]>
Newsgroups gmane.comp.video.mesa3d.devel
Message-ID <[email protected]>
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.

Regards,
Christian.

>
>>
>>> A recording of the issue is available here, in case the behaviour 
>>> rings a bell for anyone:
>>>
>>> http://www.cendio.com/~ossman/dri3/Screencast%20from%202024-06-17%2017-06-50.webm 
>>>
>>
>> Interesting. Looks like the surroundings (drop shadow region?) of the 
>> window move along with it first, then the surroundings get fixed up 
>> in the next frame.
>>
>> As far as I know, mutter doesn't move window contents like that on 
>> the client side; it always redraws the damaged output region from 
>> scratch. So I wonder if the initial move together with surroundings 
>> is actually a blit on the X server side (possibly triggered by mutter 
>> moving the X window in its function as window manager). And then the 
>> surroundings fixing themselves up is the correct output from mutter 
>> via DRI3/Present.
>>
>> If so, the issue isn't synchronization, it's that the first blit 
>> happens at all.
>>
>
> Hmm... The source of the blit is CopyWindow being called as a result 
> of the window moving. But I would have expected that to be inhibited 
> by the fact that a compositor is active. It's also surprising that 
> this only happens if DRI3 is involved.
>
> I would also have expected something similar with software rendering. 
> Albeit with a PutImage instead of PresentPixmap for the correct data. 
> But everything works there.
>
> I will need to dig further.
>
> Regards,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.