Bug 38622

Summary: [bisected] EGL assertion failure in many ES2 applications
Product: Mesa Reporter: Ian Romanick <idr>
Component: OtherAssignee: mesa-dev
Status: RESOLVED NOTABUG QA Contact:
Severity: normal    
Priority: medium CC: benjaminfranzke, idr, krh
Version: git   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Ian Romanick 2011-06-23 15:50:35 UTC
I'm seeing the following assertion failure in pretty much every single EGL application that used OpenGL ES2.

../../../../src/egl/main/eglconfig.h:118: _eglSetConfigKey: Assertion `offset >= 0' failed.

I have not tried other APIs with EGL, so the bug may affect more than just ES2 applications.

I bisected to this commit:

commit e5fc4c81ce5aa261e330977f1a672838cd186cdb
Author: Benjamin Franzke <benjaminfranzke@googlemail.com>
Date:   Mon May 30 10:50:52 2011 +0200

    egl_dri2: Hookup gbm as drm platform
Comment 1 Benjamin Franzke 2011-06-23 23:13:16 UTC
I can't reproduce this with the egl x11 demos from mesa/demos.
Also I dont see what could effect that in the bisected commit.

Anyway, would give more information about which configkey caused
that assertion and a backtrace.

Thanks
Comment 2 Ian Romanick 2011-06-24 11:09:26 UTC
(In reply to comment #1)
> I can't reproduce this with the egl x11 demos from mesa/demos.
> Also I dont see what could effect that in the bisected commit.
> 
> Anyway, would give more information about which configkey caused
> that assertion and a backtrace.

This affects *every* OpenGL ES2 conformance test.  Kristian can help you get that set up.

System environment:
-- chipset: Ironlake Mobile
-- system architecture: 64-bit
-- xf86-video-intel: xorg-x11-drv-intel-2.15.0-3.fc15.x86_64
-- xserver: xorg-x11-server-Xorg-1.10.2-1.fc15.x86_64
-- mesa: 9c5d15e9
-- libdrm: a926a043
-- kernel: 2.6.38.8-32.fc15.x86_64
-- Linux distribution: Fedora 15

(gdb) r -noimagefileio -id=7 -run=/home/idr/devel/graphics/GTF_ES/GTF_ES/glsl/GTF/GL/build/CorrectFull_vert.test
Starting program: /home/idr/devel/graphics/GTF_ES/GTF_ES/glsl/GTF/GTF -noimagefileio -id=7 -run=/home/idr/devel/graphics/GTF_ES/GTF_ES/glsl/GTF/GL/build/CorrectFull_vert.test
[Thread debugging using libthread_db enabled]
Running GTF (Graphics Test Framework)
GTF: ../../../../src/egl/main/eglconfig.h:118: _eglSetConfigKey: Assertion `offset >= 0' failed.

Program received signal SIGABRT, Aborted.
0x0000003339435285 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install expat-2.0.1-11.fc15.x86_64 glibc-2.14-2.x86_64 libgcc-4.6.0-9.fc15.x86_64 libstdc++-4.6.0-9.fc15.x86_64
(gdb) bt
#0  0x0000003339435285 in raise () from /lib64/libc.so.6
#1  0x0000003339436b9b in abort () from /lib64/libc.so.6
#2  0x000000333942dc0e in __assert_fail_base () from /lib64/libc.so.6
#3  0x000000333942dcb2 in __assert_fail () from /lib64/libc.so.6
#4  0x00007ffff7be8a55 in _eglSetConfigKey (conf=0x7fffffffdaf0, 
    key=-138470910, val=0) at ../../../../src/egl/main/eglconfig.h:118
#5  0x00007ffff7be8d21 in dri2_add_config (disp=0xb871d0, dri_config=0xb93880, 
    id=1, depth=24, surface_type=1031, attr_list=0x7fffffffdc10)
    at egl_dri2.c:158
#6  0x00007ffff7bec22b in dri2_add_configs_for_visuals (dri2_dpy=0xb88060, 
    disp=0xb871d0) at platform_x11.c:613
#7  0x00007ffff7bed073 in dri2_initialize_x11_dri2 (drv=0xb87e80, 
    disp=0xb871d0) at platform_x11.c:1006
#8  0x00007ffff7bed1b7 in dri2_initialize_x11 (drv=0xb87e80, disp=0xb871d0)
    at platform_x11.c:1048
#9  0x00007ffff7be9957 in dri2_initialize (drv=0xb87e80, disp=0xb871d0)
    at egl_dri2.c:486
#10 0x00007ffff7be5884 in _eglMatchAndInitialize (dpy=0xb871d0)
    at egldriver.c:578
#11 0x00007ffff7be591b in _eglMatchDriver (dpy=0xb871d0, test_only=0)
    at egldriver.c:609
#12 0x00007ffff7bde6da in eglInitialize (dpy=0xb871d0, major=0x7fffffffde60, 
    minor=0x7fffffffde5c) at eglapi.c:293
#13 0x00000000004fdf17 in GTFInitEGL (run=0x43a2ad <GTFRun>, argc=4, 
    argv=0x7fffffffdff8) at ./Source/GTFInitEGL.c:108
#14 0x000000000043ae56 in GTFMain (argc=4, argv=0x7fffffffdff8)
    at ./Source/GTFMain.c:265
#15 0x0000000000452d49 in main (argc=4, argv=0x7fffffffdff8)
    at ./Source/main.c:202
(gdb) up
#1  0x0000003339436b9b in abort () from /lib64/libc.so.6
(gdb) 
#2  0x000000333942dc0e in __assert_fail_base () from /lib64/libc.so.6
(gdb) 
#3  0x000000333942dcb2 in __assert_fail () from /lib64/libc.so.6
(gdb) 
#4  0x00007ffff7be8a55 in _eglSetConfigKey (conf=0x7fffffffdaf0, 
    key=-138470910, val=0) at ../../../../src/egl/main/eglconfig.h:118
118	   assert(offset >= 0);
(gdb) print offset
$1 = -1
Comment 3 Ian Romanick 2011-06-24 11:52:10 UTC
Updating libdrm seems to have resolved the problem.  If there's some minimum libdrm version requirement for this work (and there seems to be!), it needs to be reflected in configure.ac.

I'll decrease the severity and the priority of this bug, but it still needs to get sorted out.
Comment 4 Kristian Høgsberg 2011-06-24 13:16:56 UTC
(In reply to comment #3)
> Updating libdrm seems to have resolved the problem.  If there's some minimum
> libdrm version requirement for this work (and there seems to be!), it needs to
> be reflected in configure.ac.
> 
> I'll decrease the severity and the priority of this bug, but it still needs to
> get sorted out.

There's no libdrm version dependency for this work and we can't reproduce this failure.  If it fails in the eglInitialize() call, you should see this with any other EGL on X11 application.  Just to be sure, I rolled back my libdrm to the sha1 in your initial comment, and wasn't able to reproduce the crash.

I think you had a funky setup and I'm going to close this bug.  If you can roll back and reproduce the bug, please reopen.

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.