Bug 62244 - SIGFPE with cogl GL client in wayland
Summary: SIGFPE with cogl GL client in wayland
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: 9.0
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-12 16:13 UTC by Bastien Nocera
Modified: 2013-03-13 12:10 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Bastien Nocera 2013-03-12 16:13:42 UTC
I'm working with (mostly) the standard Fedora 18 packages for wayland/weston.

mesa-dri-drivers-9.0.3-1.fc18.x86_64
mesa-libEGL-9.0.3-1.fc18.x86_64
mesa-libwayland-egl-9.0.3-1.fc18.x86_64

1. Rebuild wayland (to get an updated libwayland-client, otherwise it crashes when connecting to the display, not necessary on rawhide apparently)
2. Rebuild cogl with wayland support (add --enable-wayland-egl-platform to the configure args)
3. Run weston &
4. Run this simple cogl example:
COGL_RENDERER=egl_wayland libtool --mode=execute gdb --args ./examples/cogl-crate

Program received signal SIGFPE, Arithmetic exception.
0x00007ffff4952a7c in eg_surface_init_2d (surf_man=surf_man@entry=0x6211f0, surf=surf@entry=0x7d00c0, level=level@entry=0x7fffffffb870, bpe=bpe@entry=1, tile_split=0, offset=1310720, start_level=0) at radeon_surface.c:646
646	        slice_pt = tileb / tile_split;
(gdb) bt
#0  0x00007ffff4952a7c in eg_surface_init_2d (surf_man=surf_man@entry=0x6211f0, surf=surf@entry=0x7d00c0, level=level@entry=0x7fffffffb870, bpe=bpe@entry=1, tile_split=0, offset=1310720, start_level=0) at radeon_surface.c:646
#1  0x00007ffff4952dfb in eg_surface_init_2d_miptrees (surf_man=0x6211f0, surf=0x7d00c0) at radeon_surface.c:802
#2  0x00007ffff4bc1cd8 in r600_setup_surface (pitch_in_bytes_override=2560, rtex=0x7d0000, screen=0x621250) at r600_texture.c:169
#3  r600_texture_create_object (screen=screen@entry=0x621250, base=base@entry=0x7fffffffcc20, pitch_in_bytes_override=2560, buf=buf@entry=0x7cff70, alloc_bo=alloc_bo@entry=0 '\000', surface=surface@entry=0x7fffffffbf20) at r600_texture.c:406
#4  0x00007ffff4bc21ae in r600_texture_from_handle (screen=0x621250, templ=0x7fffffffcc20, whandle=<optimized out>) at r600_texture.c:556
#5  0x00007ffff4be6ca3 in dri2_drawable_process_buffers (count=2, buffers=0x74f140, drawable=0x757980) at dri2.c:280
#6  dri2_allocate_textures (drawable=0x757980, statts=<optimized out>, count=<optimized out>) at dri2.c:391
#7  0x00007ffff4be7f80 in dri_st_framebuffer_validate (stfbi=<optimized out>, statts=0x7cc930, count=2, out=0x7fffffffcd20) at dri_drawable.c:78
#8  0x00007ffff4bec776 in st_framebuffer_validate (stfb=0x7cc4f0, st=0x6dfb10, st=0x6dfb10) at ../../src/mesa/state_tracker/st_manager.c:195
#9  0x00007ffff4bed9d3 in st_api_make_current (stapi=<optimized out>, stctxi=0x6dfb10, stdrawi=<optimized out>, streadi=<optimized out>) at ../../src/mesa/state_tracker/st_manager.c:734
#10 0x00007ffff4be775a in dri_make_current (cPriv=<optimized out>, driDrawPriv=0x74f2e0, driReadPriv=0x74f2e0) at dri_context.c:243
#11 0x00007ffff4bb4ec6 in driBindContext (pcp=<optimized out>, pdp=<optimized out>, prp=<optimized out>) at ../../../../src/mesa/drivers/dri/common/dri_util.c:381
#12 0x00007ffff6d0e29c in dri2_make_current (drv=0x619750, disp=0x618a10, dsurf=0x74f0c0, rsurf=0x74f0c0, ctx=0x624f20) at egl_dri2.c:916
#13 0x00007ffff6d04bf9 in eglMakeCurrent (dpy=0x618a10, draw=0x74f0c0, read=0x74f0c0, ctx=0x624f20) at eglapi.c:498
#14 0x00007ffff7dc27ec in _cogl_winsys_egl_make_current (display=0x624e30, draw=0x74f0c0, read=0x74f0c0, context=0x624f20) at ./winsys/cogl-winsys-egl.c:279
#15 0x00007ffff7dc340a in bind_onscreen_with_context (onscreen=0x75a030, egl_context=0x624f20) at ./winsys/cogl-winsys-egl.c:673
#16 0x00007ffff7dc34b4 in bind_onscreen (onscreen=0x75a030) at ./winsys/cogl-winsys-egl.c:698
#17 0x00007ffff7dc34ce in _cogl_winsys_onscreen_bind (onscreen=0x75a030) at ./winsys/cogl-winsys-egl.c:704
#18 0x00007ffff7d3e90e in _cogl_framebuffer_gl_bind (framebuffer=0x75a030, target=36160) at ./driver/gl/cogl-framebuffer-gl.c:246
#19 0x00007ffff7d3eb0b in _cogl_framebuffer_gl_flush_state (draw_buffer=0x75a030, read_buffer=0x75a030, 
    state=(COGL_FRAMEBUFFER_STATE_BIND | COGL_FRAMEBUFFER_STATE_VIEWPORT | COGL_FRAMEBUFFER_STATE_CLIP | COGL_FRAMEBUFFER_STATE_DITHER | COGL_FRAMEBUFFER_STATE_MODELVIEW | COGL_FRAMEBUFFER_STATE_PROJECTION | COGL_FRAMEBUFFER_STATE_COLOR_MASK | COGL_FRAMEBUFFER_STATE_FRONT_FACE_WINDING)) at ./driver/gl/cogl-framebuffer-gl.c:321
#20 0x00007ffff7dacb04 in _cogl_framebuffer_flush_state (draw_buffer=0x75a030, read_buffer=0x75a030, 
    state=(COGL_FRAMEBUFFER_STATE_BIND | COGL_FRAMEBUFFER_STATE_VIEWPORT | COGL_FRAMEBUFFER_STATE_CLIP | COGL_FRAMEBUFFER_STATE_DITHER | COGL_FRAMEBUFFER_STATE_MODELVIEW | COGL_FRAMEBUFFER_STATE_PROJECTION | COGL_FRAMEBUFFER_STATE_COLOR_MASK | COGL_FRAMEBUFFER_STATE_FRONT_FACE_WINDING)) at ./cogl-framebuffer.c:1144
#21 0x00007ffff7dab4eb in cogl_framebuffer_clear4f (framebuffer=0x75a030, buffers=3, red=0, green=0, blue=0, alpha=1) at ./cogl-framebuffer.c:369
#22 0x0000000000401b05 in paint (data=0x7fffffffd260) at cogl-crate.c:87
#23 0x0000000000402172 in main (argc=1, argv=0x7fffffffd498) at cogl-crate.c:285
(gdb) list
641	    tileh = 8;
642	    tileb = tilew * tileh * bpe * surf->nsamples;
643	    /* slices per tile */
644	    slice_pt = 1;
645	    if (tileb > tile_split) {
646	        slice_pt = tileb / tile_split;
647	    }
648	    tileb = tileb / slice_pt;
649	
650	    /* macro tile width & height */

Device is:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI Madison [Radeon HD 5000M Series] [1002:68c1]
Comment 1 Bastien Nocera 2013-03-13 12:10:50 UTC
This works with the mesa 9.1 packages in F19.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.