RE: Output of gl-renderer is incorrect

2024-04-12 Thread Namit Solanki (QUIC)
Hi pq,

Thanks for your reply. Yes, we do have downstream patches.

>From your reply, does it mean that GL-renderer rendered KMS plane can be 
>behind Video KMS plane?

Thanks,
Namit

-Original Message-
From: Pekka Paalanen  
Sent: Wednesday, April 10, 2024 3:57 PM
To: Namit Solanki (QUIC) 
Cc: wayland-devel@lists.freedesktop.org; Pritama Biswas (QUIC) 

Subject: Re: Output of gl-renderer is incorrect

On Mon, 8 Apr 2024 06:42:34 +
"Namit Solanki (QUIC)"  wrote:

> Hi Weston team,
> 
> We are working on Weston 10 version. We have a use case where we are 
> playing a video using Gstreamer and on top of it we are running a 
> Weston-simple-egl app.
> 
> Status bar and the Weston-simple-egl layer is sent to gl-renderer for 
> GPU composition and Video is sent to Display processing unit.
> 
> So finally gl-renderer's output is composed with the Video layer in 
> Display processing unit. But we see that there is corruption in this 
> use case.
> 
> The output of gl-renderer is having some garbage data. We dumped the 
> output of gl-renderer onto a RAW file and when we open it on a image 
> editor we see same corruption in the gl-renderer's output.
> 
> When we force all the layers (simple-egl + Video + Status bar) to go 
> to GPU composition there is no issue.
> 
> When we run only Video there is no problem. When we run only 
> Weston-simple-egl then also there is no problem. But when we run 
> simple-egl app on top of Video we see this corruption.
> 
> Any pointers to debug or fix this issue will be really helpful.

Hello,

from the attached image I see that the video KMS plane is behind the 
GL-renderer rendered KMS plane. This is not possible with upstream Weston 10, 
so I assume you must have downstream patches applied to make this happen. I can 
only guess that the downstream patches you use are not complete.

Both GL-renderer and the damage tracking (to render only changed areas of a 
screen) assume that if a GL-renderer rendered framebuffer is used, it will be 
completely opaque. The opaqueness relies on the whole screen being fully 
covered with opaque weston_surfaces. Usually this is achieved with a wallpaper 
or a background color fill weston_surface. If the screen is not fully covered, 
incorrect rendering like traces from moving weston_surfaces are expected. 
GL-renderer never clears the framebuffers it renders to, but relies on the 
content opaqueness instead, so it is also possible to see uninitialized memory 
contents on areas not covered by opaque surfaces if the GL ES 2 driver does not 
initialize framebuffer allocations.

I suspect that to be the most likely reason for the corruption.

There is upstream work on-going to allow video underlays in addition to video 
overlays, either by KMS overlay planes below the primary plane or by moving the 
renderer framebuffer to a KMS overlay plane, but that work is not yet complete, 
see:
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1258
https://gitlab.freedesktop.org/wayland/weston/-/issues/886
https://gitlab.freedesktop.org/wayland/weston/-/issues/9


Thanks,
pq


Re: Output of gl-renderer is incorrect

2024-04-12 Thread Pekka Paalanen
On Fri, 12 Apr 2024 07:44:43 +
"Namit Solanki (QUIC)"  wrote:

> Hi pq,
> 
> Thanks for your reply. Yes, we do have downstream patches.
> 
> From your reply, does it mean that GL-renderer rendered KMS plane can
> be behind Video KMS plane?

Yes. Currently upstream Weston (and version 10) always puts the
GL-renderer rendered framebuffer on the primary KMS plane, if
GL-renderer is needed for that screen update. There can be any number
of other KMS planes on top of the primary KMS plane.

Regardless of KMS plane assignments, if GL-renderer is used, the
resulting GL-renderer framebuffer must be fully opaque.

These are indeed quite limiting, which why the work is on-going.


Thanks,
pq


> 
> Thanks,
> Namit
> 
> -Original Message-
> From: Pekka Paalanen  
> Sent: Wednesday, April 10, 2024 3:57 PM
> To: Namit Solanki (QUIC) 
> Cc: wayland-devel@lists.freedesktop.org; Pritama Biswas (QUIC) 
> 
> Subject: Re: Output of gl-renderer is incorrect
> 
> On Mon, 8 Apr 2024 06:42:34 +
> "Namit Solanki (QUIC)"  wrote:
> 
> > Hi Weston team,
> > 
> > We are working on Weston 10 version. We have a use case where we are 
> > playing a video using Gstreamer and on top of it we are running a 
> > Weston-simple-egl app.
> > 
> > Status bar and the Weston-simple-egl layer is sent to gl-renderer for 
> > GPU composition and Video is sent to Display processing unit.
> > 
> > So finally gl-renderer's output is composed with the Video layer in 
> > Display processing unit. But we see that there is corruption in this 
> > use case.
> > 
> > The output of gl-renderer is having some garbage data. We dumped the 
> > output of gl-renderer onto a RAW file and when we open it on a image 
> > editor we see same corruption in the gl-renderer's output.
> > 
> > When we force all the layers (simple-egl + Video + Status bar) to go 
> > to GPU composition there is no issue.
> > 
> > When we run only Video there is no problem. When we run only 
> > Weston-simple-egl then also there is no problem. But when we run 
> > simple-egl app on top of Video we see this corruption.
> > 
> > Any pointers to debug or fix this issue will be really helpful.  
> 
> Hello,
> 
> from the attached image I see that the video KMS plane is behind the 
> GL-renderer rendered KMS plane. This is not possible with upstream Weston 10, 
> so I assume you must have downstream patches applied to make this happen. I 
> can only guess that the downstream patches you use are not complete.
> 
> Both GL-renderer and the damage tracking (to render only changed areas of a 
> screen) assume that if a GL-renderer rendered framebuffer is used, it will be 
> completely opaque. The opaqueness relies on the whole screen being fully 
> covered with opaque weston_surfaces. Usually this is achieved with a 
> wallpaper or a background color fill weston_surface. If the screen is not 
> fully covered, incorrect rendering like traces from moving weston_surfaces 
> are expected. GL-renderer never clears the framebuffers it renders to, but 
> relies on the content opaqueness instead, so it is also possible to see 
> uninitialized memory contents on areas not covered by opaque surfaces if the 
> GL ES 2 driver does not initialize framebuffer allocations.
> 
> I suspect that to be the most likely reason for the corruption.
> 
> There is upstream work on-going to allow video underlays in addition to video 
> overlays, either by KMS overlay planes below the primary plane or by moving 
> the renderer framebuffer to a KMS overlay plane, but that work is not yet 
> complete, see:
> https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1258
> https://gitlab.freedesktop.org/wayland/weston/-/issues/886
> https://gitlab.freedesktop.org/wayland/weston/-/issues/9
> 
> 
> Thanks,
> pq



pgpDr0QFccwQd.pgp
Description: OpenPGP digital signature


Xwayland 24.1 branching and schedule

2024-04-12 Thread Olivier Fourdan
Hi all

In preparation for the forthcoming Xwayland 24.1.0 release, I've now
created the xwayland-24.1 branch:
https://gitlab.freedesktop.org/xorg/xserver/-/tree/xwayland-24.1

And there's also a milestone that can be used to tag issues and merge
requests targeting Xwayland 24.1.0:
https://gitlab.freedesktop.org/xorg/xserver/-/milestones/17

We are already quite late in the year so for schedule, I would like to
start as soon as next week, and an RC every two weeks:

  * April 17th, 2024: Xwayland 24.1.0 RC1
  * May  2nd, 2024: Xwayland 24.1.0 RC2
  * May 15th, 2024: Xwayland 24.1.0 (if all goes well)

Cheers
Olivier