State of Wayland support in Vivante

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

State of Wayland support in Vivante

3,279 Views
thomasmcguire
Contributor II

I'd like to voice my displeasure about the support for Wayland in the Vivante drivers.

There are severe issues with basic operations like showing, hiding and resizing windows that makes the Wayland support unusable, and requires us to spent countless engineering hours for workarounds.

To highlight the most important ones:

Unfortunately I could not find a public bug tracker on the Vivante site to properly report these issues. That's why I reported two of the issues on the Yocto bug tracker, which I told a Freescale employee on IRC, but nothing came from that. Others use this forum as a bug tracker, which is also less than ideal.

iMX boards are used in embedded devices with a long expected lifetime. In that space, you can't run the latest and greatest system, putting e.g. a brand new Yocto release on there is generally not possible. Thus I was very disappointed to read that older versions are not supported and there will be no patches/backports  forthcoming (Wayland GPU memory leak when opening and closing windows ). One customer tried escalating the problems through their HW vendor, and got the same answer.

We've had two customer projects using Qt + Wayland + Vivante, and I have to say they have been a big pain because of these issues.With the current state of support, we're forced to advise our customer to stay away from iMX boards when using Wayland.

Please do improve the situation - provide a public bugtracker that the actual driver engineers will read, and fix and backport the most severe issues reported there.

7 Replies

2,082 Views
thomasmcguire
Contributor II

I just tested with Yocto Jethro, which has GPU driver version 5.0.11.p7.4.

The crash when closing a window is indeed fixed, thanks! There doesn't seem to be a memory leak when opening / closing windows repeatedly either.

The resize graphical glitch (https://bugzilla.yoctoproject.org/show_bug.cgi?id=7811) remains, despite the changelog claiming otherwise.

The spurious window getting sent to the compositor after hiding a window (https://bugzilla.yoctoproject.org/show_bug.cgi?id=7825 ) also remains unfixed.

I'd like to reiterate that resizing and hiding windows are basic operations and should really get fixed. I'm still very disappointed by the Wayland support in the Vivante GPU driver, and hope that fixes for the issue will arrive soon and be backported to Yocto Jethro Freescale/NXP Community BSP.

0 Kudos

2,082 Views
b36401
NXP Employee
NXP Employee

I escalated this improvement request.

I will let you know about the resolution.

Have a great day,

Victor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos

2,082 Views
thomasmcguire
Contributor II

Thanks. I hope it will reach the right people.

0 Kudos

2,082 Views
b36401
NXP Employee
NXP Employee

Issue 1:

Buffer is corrupted when a window is resized.

When resizing a wayland client using wl_egl_window_resize(), the buffer for that frame gets corrupted. This seems to be a bug in the Vivante GPU driver.

This was solved on the latest 5.0.11.p7 version of the libraries. Let me know whether you can move to the latest GPU libs drop or if we should backport the fix to your version.

as for Issue 2:

When a Wayland client hides a window by attaching a nil buffer to the window's surface, the Wayland compositor will not hide the window,

but display the last frame that was rendered.

Hiding a surface by committing a NULL pointer is a known weston limitation, it is not expected for NXP to solve it.

As for issues 3 and 4 we need a bit more information. Where you are seeing the memory leak?

Those issues have been already solved since P7 GPU libs and were backported to the 3.10.53 BSP with successful results on other threads.

Have a great day,

Victor

0 Kudos

2,082 Views
thomasmcguire
Contributor II

Thank you for you detailed answer, it's good to hear that these issues are read.

Victor Linnik wrote:

Issue 1:

Buffer is corrupted when a window is resized.

When resizing a wayland client using wl_egl_window_resize(), the buffer for that frame gets corrupted. This seems to be a bug in the Vivante GPU driver.

This was solved on the latest 5.0.11.p7 version of the libraries. Let me know whether you can move to the latest GPU libs drop or if we should backport the fix to your version.

Fantastic, thanks a lot for fixing this and for letting me know the exact version where it is fixed!

We're right now on Yocto dizzy, which uses a much older driver version, before the versioning scheme was even introduced, it seems.

Is it possible to simply download new GPU driver libraries and use them with an older Kernel? Is there a list of which driver version is compatible with which Kernel somewhere? From where can the drivers be downloaded?

as for Issue 2:

When a Wayland client hides a window by attaching a nil buffer to the window's surface, the Wayland compositor will not hide the window,

but display the last frame that was rendered.

Hiding a surface by committing a NULL pointer is a known weston limitation, it is not expected for NXP to solve it.

This is not a limitation in weston, it is in fact unrelated to weston as it appears in other compositors as well. All Qt client applications will have this problem, if not others as well. Since Qt is one of the leading UI frameworks on embedded, I'd see this as a big problem, as it is very easy to trigger, prominent and hard to work around bug.

Again, it is a bug in the Vivante driver. The information in https://bugzilla.yoctoproject.org/show_bug.cgi?id=7825  should make that clear.

Please fix the root problem in the driver.

As for issues 3 and 4 we need a bit more information. Where you are seeing the memory leak?

Those issues have been already solved since P7 GPU libs and were backported to the 3.10.53 BSP with successful results on other threads.

Both of these issues is something a colleague experienced, I'll ask him about more details.

Again I'm happy to hear that this has been fixed, thanks for providing the version number.

0 Kudos

2,082 Views
thomasmcguire
Contributor II

As for issues 3 and 4 we need a bit more information. Where you are seeing the memory leak?

Those issues have been already solved since P7 GPU libs and were backported to the 3.10.53 BSP with successful results on other threads.

Both of these issues is something a colleague experienced, I'll ask him about more details.

Again I'm happy to hear that this has been fixed, thanks for providing the version number.

Ok, so indeed the threads for issues 3 and 4 say that they have been fixed. My apologies, I have missed that information.

This only leaves issue 2 to be fixed - the driver developers are welcome to join the #qtlighthouse or #wayland IRC channels to discuss details with the Wayland developers, so this can get resolved.

Having experienced all these serious bugs, we were quite frustrated, glad to hear that 3 of them have been fixed now.

0 Kudos