Bug 103358

Summary: All EGL programs segfault (regression)
Product: Mesa Reporter: Eero Tamminen <eero.t.tamminen>
Component: EGLAssignee: mesa-dev
Status: VERIFIED FIXED QA Contact: mesa-dev
Severity: critical    
Priority: high    
Version: git   
Hardware: x86-64 (AMD64)   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Eero Tamminen 2017-10-19 11:30:03 UTC
All EGL programs I could find, started to segfault in eglChooseConfig() on all Intel platforms between following Mesa commits:
* 3de87f7cd7 at 2017-10-17 16:17:15 UTC vulkan/wsi: Free the event in x11_manage_fifo_queues()
* f37af5ec8d at 2017-10-18 17:36:53 UTC
st/mesa: set dimension for constants in ATI_fragment_shader

There are several commits from Eric that change Mesa EGL code between that range.

Backtrace to crash is following:
----------------------------------------
$ gdb glmark2-es2
...
(gdb) run
Starting program: /usr/bin/glmark2-es2 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff73f3e1b in eglChooseConfig (dpy=0x77b890, 
    attrib_list=0x7fffffffe400, configs=0x0, config_size=0, 
    num_config=0x7fffffffe3bc) at main/eglapi.c:715
#2  0x00000000005147b2 in ?? ()
#3  0x0000000000514c13 in ?? ()
#4  0x000000000050f8d5 in ?? ()
#5  0x000000000051058e in ?? ()
#6  0x0000000000406e63 in ?? ()
#7  0x00007ffff6593830 in __libc_start_main (main=0x406780, argc=1, 
    argv=0x7fffffffe8f8, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7fffffffe8e8)
    at ../csu/libc-start.c:291
----------------------------------------

-> eglChooseConfig() code calls a NULL pointer.
Comment 1 Eero Tamminen 2017-10-19 12:02:06 UTC
Seems to be fixed in HEAD with 84f3afc2e122cb418573f1e9c61716520f9859c1 revert commit.

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.