Skew bug with egl

Bill Spitzak spitzak at gmail.com
Tue Aug 14 09:18:03 PDT 2012


I have updated to new Ubuntu. This seems to have enabled wayland clients 
to use egl rather than shm. However now every client comes out skewed 
(sharply enough that the windows are unreadable but you see the colors 
and can guess what is going on). This previously only happened with 
simple-egl.

Clickdot is the only client that allows arbitrary resizing, and I found 
that I can get a non-skewed window on each multiple of 16 pixels.

What I suspect is some stride restriction of my driver is not being 
communicated to the wayland libraries that allocate egl buffers. 
Resizing clickdot makes it look like it is choosing all possible 
strides. I have no idea if the bug is in wayland or the driver or in mesa.

Here is the printout when running weston (it runs a terminal and another 
program I can't identify):

$ ./wayland-run.sh

Running weston, the example wayland compositor.
Sleeping 2 seconds so the compositor is actually running by the time I 
run other stuff.
Date: 2012-08-14 PDT
[09:03:09.977] weston 0.95.0
                http://wayland.freedesktop.org/
                Bug reports to: 
https://bugs.freedesktop.org/enter_bug.cgi?product=weston
                Build: 0.95.0-129-g468262b-dirty event-test: fix 
compilation (2012-08-14 10:17:07 -0400)
[09:03:09.978] OS: Linux, 3.2.0-27-generic, #43-Ubuntu SMP Fri Jul 6 
14:46:35 UTC 2012, i686
[09:03:09.978] warning: XDG_RUNTIME_DIR "/var/lock" is not configured
correctly.  Unix access mode must be 0700 but is 777,
and XDG_RUNTIME_DIR must be owned by the user, but is
owned by UID 0.
Refer to your distribution on how to get it, or
http://www.freedesktop.org/wiki/Specifications/basedir-spec
on how to implement it.
[09:03:09.989] Loading module 
'/home/spitzak/install/lib/weston/x11-backend.so'
[09:03:10.075] initializing x11 backend
libEGL debug: Native platform type: x11 (autodetected)
libEGL debug: EGL search path is /home/spitzak/install/lib/egl
libEGL debug: added /home/spitzak/install/lib/egl/egl_gallium.so to 
module array
libEGL debug: added egl_dri2 to module array
libEGL debug: added egl_glx to module array
libEGL debug: dlopen(/home/spitzak/install/lib/egl/egl_gallium.so)
libEGL info: use X11 for display 0x86262f0
libEGL info: created a pipe screen for nouveau
libEGL debug: the best driver is Gallium
Mesa warning: couldn't open libtxc_dxtn.so, software DXTn 
compression/decompression unavailable
[09:03:10.394] EGL version: 1.4 (Gallium)
[09:03:10.394] EGL vendor: Mesa Project
[09:03:10.394] EGL client APIs: OpenGL OpenGL_ES2
[09:03:10.394] EGL extensions: EGL_WL_bind_wayland_display 
EGL_KHR_image_base
                EGL_KHR_image_pixmap EGL_KHR_image EGL_KHR_reusable_sync
                EGL_KHR_fence_sync EGL_KHR_surfaceless_context
                EGL_NOK_swap_region EGL_NV_post_sub_buffer
[09:03:10.395] GL version: OpenGL ES 2.0 Mesa 8.1-devel (git-b497719)
[09:03:10.395] GLSL version: OpenGL ES GLSL ES 1.0.16
[09:03:10.395] GL vendor: nouveau
[09:03:10.395] GL renderer: Gallium 0.4 on NV4A
[09:03:10.395] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
                GL_EXT_texture_filter_anisotropic
                GL_EXT_texture_format_BGRA8888 GL_OES_depth24
                GL_OES_element_index_uint GL_OES_fbo_render_mipmap
                GL_OES_mapbuffer GL_OES_rgb8_rgba8 
GL_OES_standard_derivatives
                GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot
                GL_OES_EGL_image GL_OES_depth_texture
                GL_OES_packed_depth_stencil 
GL_EXT_texture_type_2_10_10_10_REV
                GL_EXT_read_format_bgra GL_NV_fbo_color_attachments
                GL_OES_EGL_image_external GL_EXT_texture_rg
                GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer
[09:03:10.476] XCB-XKB not available during build
[09:03:10.691] x11 output 1024x640, window id 67108869
[09:03:10.692] Loading module '/home/spitzak/install/lib/weston/xwayland.so'
[09:03:10.715] xserver listening on display :1
[09:03:10.715] Loading module 
'/home/spitzak/install/lib/weston/desktop-shell.so'
[09:03:10.716] launching 
'/home/spitzak/install/libexec/weston-desktop-shell'
[09:03:10.718] libwayland: using socket /var/lock/wayland-0
libEGL debug: Native platform type: wayland (autodetected)
libEGL debug: EGL search path is /home/spitzak/install/lib/egl
libEGL debug: added /home/spitzak/install/lib/egl/egl_gallium.so to 
module array
libEGL debug: added egl_dri2 to module array
libEGL debug: added egl_glx to module array
libEGL debug: dlopen(/home/spitzak/install/lib/egl/egl_gallium.so)
libEGL info: use wayland for display 0x926c658
libEGL info: pci id for fd 6: 10de:0221, driver nouveau
libEGL info: created a pipe screen for nouveau
libEGL debug: the best driver is Gallium
Mesa warning: couldn't open libtxc_dxtn.so, software DXTn 
compression/decompression unavailable
vte terminal client isn't installed.
QtWebKit web browser isn't installed.
spitzak at lulu:~/swdevl/wayland$ libEGL debug: Native platform type: 
wayland (autodetected)
libEGL debug: EGL search path is /home/spitzak/install/lib/egl
libEGL debug: added /home/spitzak/install/lib/egl/egl_gallium.so to 
module array
libEGL debug: added egl_dri2 to module array
libEGL debug: Native platform type: wayland (autodetected)
libEGL debug: added egl_glx to module array
libEGL debug: EGL search path is /home/spitzak/install/lib/egl
libEGL debug: dlopen(/home/spitzak/install/lib/egl/egl_gallium.so)
libEGL debug: added /home/spitzak/install/lib/egl/egl_gallium.so to 
module array
libEGL debug: added egl_dri2 to module array
libEGL debug: added egl_glx to module array
libEGL debug: dlopen(/home/spitzak/install/lib/egl/egl_gallium.so)
libEGL info: use wayland for display 0x9734658
libEGL info: use wayland for display 0x9265680
libEGL info: pci id for fd 7: 10de:0221, driver nouveau
libEGL info: created a pipe screen for nouveau
libEGL debug: the best driver is Gallium
Mesa warning: couldn't open libtxc_dxtn.so, software DXTn 
compression/decompression unavailable
libEGL info: pci id for fd 7: 10de:0221, driver nouveau
libEGL info: created a pipe screen for nouveau
libEGL debug: the best driver is Gallium
Mesa warning: couldn't open libtxc_dxtn.so, software DXTn 
compression/decompression unavailable


Here is the debugging output from running simple-egl and killing with 
^C. The display shows the animated triangle, but skewed right as though 
the stride used to read the buffer is larger than the stride used to 
write it:

$ env MESA_DEBUG=1 EGL_LOG_LEVEL=debug weston/clients/simple-egl
libEGL debug: Native platform type: wayland (autodetected)
libEGL debug: EGL search path is /home/spitzak/install/lib/egl
libEGL debug: added /home/spitzak/install/lib/egl/egl_gallium.so to 
module array
libEGL debug: added egl_dri2 to module array
libEGL debug: added egl_glx to module array
libEGL debug: dlopen(/home/spitzak/install/lib/egl/egl_gallium.so)
libEGL info: use wayland for display 0x8ada008
libEGL info: pci id for fd 4: 10de:0221, driver nouveau
libEGL info: created a pipe screen for nouveau
libEGL debug: the best driver is Gallium
Mesa warning: couldn't open libtxc_dxtn.so, software DXTn 
compression/decompression unavailable
^Csimple-egl exiting
[09:06:32.164] libwayland: disconnect from client 0x884a4f0
spitzak at lulu:~/swdevl/wayland$ [09:06:36.980] libwayland: disconnect 
from client 0x884ccd8
read error: No such file or directory
libEGL debug: Display 0x92710b8 is destroyed with resources
libEGL debug: Display 0x8631a78 is destroyed with resources
read error: Success
libEGL debug: Display 0x926a0c8 is destroyed with resources
read error: No such file or directory
libEGL debug: Display 0x97390b8 is destroyed with resources


More information about the wayland-devel mailing list