Hi, I first posted this message to the etnaviv list today, and I hope it's OK to cross-post here. I don't intend to spam, I'm just not 100% sure if the problem is in Xwayland, glamor or in etnaviv. Any input is appreciated.
My system is a i.MX6QP board (with 1.2GHz, but identical problem with another 1.0GHz chip), Vivante GC3000. Problem: When using Xwayland -retro, a black window appears instead of the classic X stipple pattern, and X applications are generally invisible, except when using the software rendering path instead of glamor+GLES2. Steps: - Launch weston (i.e. weston --tty 7) - From weston-terminal, launch Xwayland -retro - Xwayland launches with glamor+GLES2, because I disabled the "desktop opengl" init in Xwayland which cannot run due to missing extensions. Glamor+GLES2 initializes without errors and renders, though fails to present the output. - Subsequently launched X apps are invisible. When starting X apps, for example xeyes, Xwayland correctly posts damage to the compositor, but the glamor texture/buffer object is always empty (filled with zeroes) or cannot be sampled, resulting in completely black textures. Evidence: - with fan debugging enabled in weston, I can see the outlines of the xeyes' eyes and the pupils' outlines are following the mouse cursor. - I can map and dump the gbm_bo that xwayland/glamor renders into, in xwl_window_post_damage. X applications are rendered correctly into this buffer (I dumped a screenshot of xclock and Chromium), so glamor/gles2 mostly works on etnaviv, it's just a presentation problem. - Xwayland/glamor registers its gbm buffer with wl_drm_create_prime_buffer (passing a fd) which ends up in drm_create_prime_buffer on the server side. I might have made mistakes, but when mapping the gbm_bo on that side (using gbm_bo_import and then gbm_map_bo), it appears that the buffer is empty (maybe it cannot be transferred correctly?). - Wayland native GLES2 and OpenGL apps work fine on weston, for example glmark2-wayland or glmark2-es2-wayland, or ioquake3. - The mouse cursor (big X) is set correctly in xwayland Versions (all are recent master commits from git): - xserver bebcc8477c8070ade9dd4be7299c718baeab3d7a - weston e8ff7df863a10eb4be5273017fb544b5f823fc6a - mesa 12a2350e6d3b974dec74280543cf5cac22720358 - linux 4.15.0-12117-ga0f79386a49-dirty I've spent 3-4 days trying to debug this but I don't have enough egl/dri/etnaviv knowledge to figure out what exactly causes the problem. If you have any suggestions of how to approach fixing this, I'd be very thankful. Cheers Lukas F. Hartmann (mntmn) _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
