Summary: | egl_glx driver completely broken in 7.9 branch [fix in master] | ||
---|---|---|---|
Product: | Mesa | Reporter: | nobled <nobled> |
Component: | Other | Assignee: | mesa-dev |
Status: | RESOLVED WONTFIX | QA Contact: | |
Severity: | major | ||
Priority: | medium | CC: | csd_b |
Version: | 7.9 | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
nobled
2011-01-04 08:08:55 UTC
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.