[Mesa-dev] [PATCH 2/4] glapi: Fix build break in 'make check' on non-shared-glapi builds

Ian Romanick idr at freedesktop.org
Fri Apr 4 17:40:36 PDT 2014


On 04/03/2014 05:31 PM, Dieter Nützel wrote:
> Am 03.04.2014 22:53, schrieb Ian Romanick:
>> On 04/03/2014 07:35 AM, Dieter Nützel wrote:
>>> Am 03.04.2014 04:16, schrieb Ian Romanick:
>>>> On 04/02/2014 06:13 PM, Dieter Nützel wrote:
>>>>> Am 03.04.2014 01:19, schrieb Ian Romanick:
>>>>>> On 04/02/2014 03:43 PM, Dieter Nützel wrote:
>>>>>>> Am 02.04.2014 08:12, schrieb Timothy Arceri:
>>>>>>>> On Wed, 2014-04-02 at 00:56 +0200, Dieter Nützel wrote:
>>>>>>>>> Hello Ian, hello Timothy,
>>>>>>>>>
>>>>>>>>> does this fix the regression introduced with commit fb78fa58?
>>>>>>>>>
>>>>>>>>> [Mesa-dev] Mesa git (r600g): OpenGL Error(GL_INVALID_OPERATION):
>>>>>>>>> initTexture2D (bisected)
>>>>>>>>> http://lists.freedesktop.org/archives/mesa-dev/2014-March/056165.html
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>>    Dieter
>>>>>>>>
>>>>>>>> Hi Dieter,
>>>>>>>>
>>>>>>>> I just ran ./build/Release/gl-320-primitive-sprite on Mesa
>>>>>>>> 10.2.0-devel
>>>>>>>> (git-76ba50a) on Intel graphics and it ran fine with no error.
>>>>>>>> Have you
>>>>>>>> tried running it again with the latest code from git?
>>>>>>>> Tim
>>>>>>>
>>>>>>> Hello Tim,
>>>>>>>
>>>>>>> thank you very much for your direct reply!
>>>>>>> I've retested it with Mesa git daily on my _32bit_ system.
>>>>>>> All with same result.
>>>>>>> I even recompiled ogl-samples after recheckout several times NO go.
>>>>>>> Last try last night 8-(
>>>>>>>
>>>>>>> But,
>>>>>>>
>>>>>>> ...argh,
>>>>>>> after your request I've cloned ogl-samples this evening again and
>>>>>>> can't
>>>>>>> compile it anylonger. Someone changed the code to compile on 64 bit
>>>>>>> system only now, I think:
>>>>>>>
>>>>>>> [ 13%] Building CXX object
>>>>>>> framework/CMakeFiles/framework.dir/compiler.cpp.o
>>>>>>> Linking CXX static library libframework.a
>>>>>>> [ 13%] Built target framework
>>>>>>> Scanning dependencies of target es-200-draw-elements
>>>>>>> [ 13%] Building CXX object
>>>>>>> tests/CMakeFiles/es-200-draw-elements.dir/es-200-draw-elements.cpp.o
>>>>>>> Linking CXX executable ../build/Release/es-200-draw-elements
>>>>>>> /usr/lib/gcc/i586-suse-linux/4.8/../../../../i586-suse-linux/bin/ld:
>>>>>>> skipping incompatible
>>>>>>> /opt/ogl-samples/external/FreeImage-3.15.4/linux64/libfreeimage.a
>>>>>>> when
>>>>>>> searching for -lfreeimage
>>>>>>
>>>>>> He's shipping a prebuilt .a???  Madness!  Is there source code for
>>>>>> FreeImage included?  Can you just build a 32-bit version?  It seems
>>>>>> like
>>>>>> he has a crazy build system...
>>>>>
>>>>> Thank you guys for your patience...
>>>>>
>>>>>>> I'll try to go back some days in ogl-samples repository and try
>>>>>>> to get
>>>>>>> it running (with Mesa 10.1.0), again as starting point.
>>>>>
>>>>> Due to
>>>>> git clone -b 4.4.0 https://github.com/g-truc/ogl-samples
>>>>> I'm back to ogl-samples 4.4.0 (without FreeImage-3.15.4)
>>>>> and set, now.
>>>>>
>>>>> Mesa 10.1.0: OK
>>>>>
>>>>> /opt/ogl-samples> glxinfo | grep OpenGL
>>>>> libGL error: dlopen /usr/lib/dri/updates/r600_dri.so failed
>>>>> (/usr/lib/dri/updates/r600_dri.so: cannot open shared object file: No
>>>>> such file or directory)
>>>>> OpenGL vendor string: X.Org
>>>>> OpenGL renderer string: Gallium 0.4 on AMD RV730
>>>>> OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.0
>>>>> OpenGL core profile shading language version string: 3.30
>>>>> OpenGL core profile context flags: (none)
>>>>> OpenGL core profile profile mask: core profile
>>>>> OpenGL core profile extensions:
>>>>> OpenGL version string: 3.0 Mesa 10.1.0
>>>>> OpenGL shading language version string: 1.30
>>>>> OpenGL context flags: (none)
>>>>> OpenGL extensions:
>>>>>
>>>>> /opt/ogl-samples> ./build/release/gl-320-primitive-sprite
>>>>> libGL error: dlopen /usr/lib/dri/updates/r600_dri.so failed
>>>>> (/usr/lib/dri/updates/r600_dri.so: cannot open shared object file: No
>>>>> such file or directory)
>>>>> OpenGL Version Needed 3.2 ( 3.3 Found )
>>>>> Compiling shader
>>>>> gl-320/primitive-sprite.vert...
>>>>>
>>>>> Compiling shader
>>>>> gl-320/primitive-sprite.frag...
>>>>>
>>>>> Linking program
>>>>>
>>>>> Running Test
>>>>> Test Ended
>>>>> Test Began Correctly.
>>>>>
>>>>>
>>>>> Mesa 10.2.0-devel (git-d120506): BAD
>>>>>
>>>>> /opt/ogl-samples> glxinfo | grep OpenGL
>>>>> OpenGL vendor string: X.Org
>>>>> OpenGL renderer string: Gallium 0.4 on AMD RV730
>>>>> OpenGL core profile version string: 3.3 (Core Profile) Mesa
>>>>> 10.2.0-devel
>>>>> (git-d120506)
>>>>> OpenGL core profile shading language version string: 3.30
>>>>> OpenGL core profile context flags: (none)
>>>>> OpenGL core profile profile mask: core profile
>>>>> OpenGL core profile extensions:
>>>>> OpenGL version string: 3.0 Mesa 10.2.0-devel (git-d120506)
>>>>> OpenGL shading language version string: 1.30
>>>>> OpenGL context flags: (none)
>>>>> OpenGL extensions:
>>>>>
>>>>> /opt/ogl-samples> ./build/release/gl-320-primitive-sprite
>>>>> OpenGL Version Needed 3.2 ( 3.3 Found )
>>>>> OpenGL Error(GL_INVALID_OPERATION): initTexture2D
>>>>
>>>> I'm guessing that initTexture2D is in the application.  Can you set a
>>>> breakpoint at _mesa_error to see where exactly Mesa is throwing
>>>> GL_INVALID_OPERATION.  That should shed some light on things.
>>>
>>> Ian,
>>>
>>> can you please guide me a bit.
>>> running
>>> gdb ./build/release/gl-320-primitive-sprite
>>> and
>>> (gdb) break _mesa_error
>>> Function "_mesa_error" not defined.
>>> Make breakpoint pending on future shared library load? (y or [n]) y
>>>
>>> Breakpoint 1 (_mesa_error) pending.
>>>
>>> Do not do the trick.
>>
>> But you still get the error from the application?  Eh... I'm at a loss,
>> then.  _mesa_error is *the* function in Mesa that sets GL errors.
>> MESA_DEBUG=verbose give any output?  Failing that... valgrind?
> 
> Does this help?
> setenv MESA_DEBUG verbose (tcsh ;-)
> 
> Mesa 10.2.0-devel (git-c6050ce)
> /opt/ogl-samples> ./build/release/gl-320-primitive-sprite
> Mesa warning: failed to remap glDebugMessageCallbackARB
> Mesa warning: failed to remap glDebugMessageControlARB
> Mesa warning: failed to remap glDebugMessageInsertARB
> Mesa warning: failed to remap glGetDebugMessageLogARB

This is the real problem.  Something changed between the libGL the app
is using and the libGL the driver was built with.  The driver wants to
get dispatch table locations for these functions, and libGL won't give
them.  On IA32, I'm not sure what could cause this.

> Mesa: User error: GL_INVALID_ENUM in glGetString(GL_EXTENSIONS)

Naughty!  Calling removed functionality in a 3.3 core profile...

> OpenGL Version Needed 3.2 ( 3.3 Found )
> Mesa: User error: GL_INVALID_OPERATION in unsupported function called
> (unsupported extension or deprecated function?)

Ah!  That explains why _mesa_error wasn't called.

> OpenGL Error(GL_INVALID_OPERATION): initTexture2D
> Running Test
> Test Ended
> 
> Mesa 10.1.0
> /opt/ogl-samples> ./build/release/gl-320-primitive-sprite
> libGL error: dlopen /usr/lib/dri/updates/r600_dri.so failed
> (/usr/lib/dri/updates/r600_dri.so: cannot open shared object file: No
> such file or directory)
> Mesa: User error: GL_INVALID_ENUM in glGetString(GL_EXTENSIONS)
> OpenGL Version Needed 3.2 ( 3.3 Found )
> Compiling shader
> gl-320/primitive-sprite.vert...
> 
> Compiling shader
> gl-320/primitive-sprite.frag...
> 
> Linking program
> 
> Running Test
> Test Ended
> Test Began Correctly.
> 
>>>>> Running Test
>>>>> Test Ended
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> BTW
>>>>> gl-320-primitive-shading
>>>>> sigfault with Mesa 10.1.0
>>>>> and show
>>>>> OpenGL Error(GL_INVALID_OPERATION): initProgram
>>>>> with Mesa 10.2.0-devel (git-d120506) on r600g.
>>>>> What does (should) it look like on Intel?
>>>
>>> Had this (geom shader) anybody running?
>>> How should it look like?
>>> Maybe a picture?
>>>
>>> I did all of this to get a picture about the r600g geom shader glory...
>>> ...sadly there is NO 32 bit version of
>>> Unigine_Valley-1.0/Unigine_Heaven-4.0 ;-)
>>>
>>> -Dieter



More information about the mesa-dev mailing list