On Fri, 12 Apr 2024 07:44:43 +0000
"Namit Solanki (QUIC)" <quic_nsola...@quicinc.com> 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 <pekka.paala...@collabora.com> 
> Sent: Wednesday, April 10, 2024 3:57 PM
> To: Namit Solanki (QUIC) <quic_nsola...@quicinc.com>
> Cc: wayland-devel@lists.freedesktop.org; Pritama Biswas (QUIC) 
> <quic_pritb...@quicinc.com>
> Subject: Re: Output of gl-renderer is incorrect
> 
> On Mon, 8 Apr 2024 06:42:34 +0000
> "Namit Solanki (QUIC)" <quic_nsola...@quicinc.com> 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

Attachment: pgpDr0QFccwQd.pgp
Description: OpenPGP digital signature

Reply via email to