As is, it fails to validate any config because it apparently doesn't convert things like GLX_NONE into EGL_NONE: libEGL debug: added ../../../usr/lib/egl/egl_glx.so to module array libEGL debug: added ../../../usr/lib/egl/egl_dri2.so to module array libEGL debug: dlopen(../../../usr/lib/egl/egl_glx.so) libEGL debug: attribute 0x3034 has an invalid value 0x8000 libEGL debug: GLX: failed to validate config 0 libEGL debug: attribute 0x3034 has an invalid value 0x8000 libEGL debug: GLX: failed to validate config 1 libEGL debug: attribute 0x3034 has an invalid value 0x8000 libEGL debug: GLX: failed to validate config 2 ... libEGL debug: attribute 0x3034 has an invalid value 0x8000 libEGL debug: GLX: failed to validate config 127 libEGL warning: GLX: failed to create any config libEGL debug: dlopen(../../../usr/lib/egl/egl_dri2.so) libEGL fatal: DRI2: failed to authenticate (For reference, EGL_TRANSPARENT_TYPE = 0x3034, GLX_NONE = 0x8000, EGL_NONE = 0x3038) It looks like the fix is to cherry-pick this commit to the 7.9 branch: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ecca5571b6df9a35dc16280b3556f4b11a8493a2
The fix has dependencies on other commits. For 7.9 branch, I have to make a different one. The new fix is much smaller and may be incomplete. But at least EGL demos run.
Still broken here, though. This time the error looks like this: libEGL debug: attribute 0x3034 has an invalid value 0x3 libEGL debug: GLX: failed to validate config 0 libEGL debug: attribute 0x3034 has an invalid value 0x3 libEGL debug: GLX: failed to validate config 1 libEGL debug: attribute 0x3034 has an invalid value 0x4 libEGL debug: GLX: failed to validate config 2 libEGL debug: attribute 0x3034 has an invalid value 0x4 libEGL debug: GLX: failed to validate config 3 libEGL debug: attribute 0x3034 has an invalid value 0x3 libEGL debug: GLX: failed to validate config 4 ... libEGL debug: attribute 0x3034 has an invalid value 0x4 libEGL debug: GLX: failed to validate config 127 libEGL warning: GLX: failed to create any config
Did you try a clean build? I don't see why the fix would make 0x3034 have the value 0x3 or 0x4.
(In reply to comment #3) > Did you try a clean build? I don't see why the fix would make 0x3034 have the > value 0x3 or 0x4. Yeah, a fresh git checkout: git checkout 7.9 git clean -xdf autoreconf && ./configure --disable-glw --disable-glut --disable-glu --disable-gallium-i915 --disable-gallium-i965 --disable-gallium-radeon --disable-gallium-svga --enable-xcb cd src/egl && make I just needed to rebuild the egl_glx.so, so I just did that. That shouldn't make a difference, right?
You also need to rebuild libEGL (src/egl/main/). Could you see if it helps?
(In reply to comment #5) > You also need to rebuild libEGL (src/egl/main/). Could you see if it helps? Nope, I tried that. Same error.
This fix is a WORKSFORME. I am not sure, but it may be a compatibility issue with your libGL. Could you set a breakpoint at _eglSetConfigKey and see when is 0x3034 set and to which value?
hi, I'm running a small test program against the egl-glx version with the fix mentioned below, and when I run the following piece of code: ---------------------------------------- static EGLint const attribute_list[] = { EGL_RED_SIZE, 1, EGL_GREEN_SIZE, 1, EGL_BLUE_SIZE, 1, EGL_NONE }; ... fprintf(stderr,"Calling eglChooseConfig\n"); if (eglChooseConfig(egld, attribute_list, &config, 1, &num_config) == EGL_FALSE) { fprintf(stderr, "eglChooseConfig failed. err=%x\n", eglGetError()); exit(1); } else { fprintf(stderr, "eglChooseConfig finished ok\n"); } ------------------------------------------- I get the following output: -------------------------- Calling eglChooseConfig libEGL debug: the value (0x8) of attribute 0x3040 did not meet the criteria (0x1) libEGL debug: the value (0x8) of attribute 0x3040 did not meet the criteria (0x1) libEGL debug: the value (0x8) of attribute 0x3040 did not meet the criteria (0x1) ...[repeats about 100 times]... eglChooseConfig finished ok -------------------------- is this related to this bug? Also, eglgears_screen and egltri_screen fail with this error: ------------------------------------------------------- libEGL debug: attribute 0x3033 has an invalid value 0x8 libEGL debug: EGL user error 0x3004 (EGL_BAD_ATTRIBUTE) in eglChooseConfig ------------------------------------------------------- but I never ran those before today so I don't know if they are supposed to work or not. thanks, csd
(In reply to comment #8) > hi, > I'm running a small test program against the egl-glx version with the fix > mentioned below, and when I run the following piece of code: > ---------------------------------------- > static EGLint const attribute_list[] = { > EGL_RED_SIZE, 1, > EGL_GREEN_SIZE, 1, > EGL_BLUE_SIZE, 1, > EGL_NONE > }; > ... > fprintf(stderr,"Calling eglChooseConfig\n"); > if (eglChooseConfig(egld, attribute_list, &config, 1, &num_config) == > EGL_FALSE) { > fprintf(stderr, "eglChooseConfig failed. err=%x\n", > eglGetError()); > exit(1); > } else { > fprintf(stderr, "eglChooseConfig finished ok\n"); > } > ------------------------------------------- > > I get the following output: > -------------------------- > Calling eglChooseConfig > libEGL debug: the value (0x8) of attribute 0x3040 did not meet the criteria > (0x1) > libEGL debug: the value (0x8) of attribute 0x3040 did not meet the criteria > (0x1) > libEGL debug: the value (0x8) of attribute 0x3040 did not meet the criteria > (0x1) > ...[repeats about 100 times]... > eglChooseConfig finished ok > -------------------------- > > is this related to this bug? Nope. You should specifiy EGL_RENDERABLE_TYPE (0x3040) in the test program. It is default to EGL_OPENGL_ES1_BIT (0x1), and egl_glx only supports EGL_OPENGL_BIT (0x8). > Also, eglgears_screen and egltri_screen fail with this error: > ------------------------------------------------------- > libEGL debug: attribute 0x3033 has an invalid value 0x8 > libEGL debug: EGL user error 0x3004 (EGL_BAD_ATTRIBUTE) in eglChooseConfig > ------------------------------------------------------- > > but I never ran those before today so I don't know if they are supposed to work > or not. Those suffixed with _screen do not work with egl_glx. They requre EGL_MESA_screen_surface extension. They should output better error message though. > thanks, > csd
7.9 branch is dead.
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.