Bug 27332 - Problem with libopencascade - salome-platform
Summary: Problem with libopencascade - salome-platform
Status: NEW
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Radeon (show other bugs)
Version: XOrg git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-03-26 12:22 UTC by Paulo César Pereira de Andrade
Modified: 2010-11-17 14:55 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paulo César Pereira de Andrade 2010-03-26 12:22:55 UTC
I am working on a "salome" package for mandriva: http://www.salome-platform.org, that uses opencascade in the "geometry" module.
  It appears to work correctly in software rendering (i.e. force it to
use swraster, usually by switching the Xorg module to fbdev or vesa as
a "fast hack"), but with radeon drm it doesn't work correctly.

  Running the command:

% MESA_DEBUG=FP LIBGL_DEBUG=verbose runSalome

then loading a sample file, gdb -p'ing the pid of SALOME_Session_Server,
when I select the geometry module (what causes it to load the opencascade
module/library), I see the mesa debug:

libGL: XF86DRIGetClientDriverName: 5.3.0 r300 (screen 0)
libGL: OpenDriver: trying /usr/lib64/dri/r300_dri.so
Using x11AppColormap
libGL: Can't open configuration file /etc/drirc: Arquivo ou diretório não encontrado.
Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable
Mesa: User error: GL_INVALID_ENUM in glIsEnabled(0xb72)
Mesa: User error: GL_INVALID_ENUM in glEnable(0xb72)
Mesa: 1 similar GL_INVALID_ENUM errors
Mesa: User error: GL_INVALID_ENUM in glIsEnabled(0xb72)
Mesa: User error: GL_INVALID_ENUM in glEnable(0xb72)
Mesa: 1 similar GL_INVALID_ENUM errors
Mesa: User error: GL_INVALID_ENUM in glIsEnabled(0xb72)
Mesa: User error: GL_INVALID_ENUM in glEnable(0xb72)
Mesa: 1 similar GL_INVALID_ENUM errors
Mesa: User error: GL_INVALID_ENUM in glIsEnabled(0xb72)
Mesa: User error: GL_INVALID_ENUM in glEnable(0xb72)
Mesa: 1 similar GL_INVALID_ENUM errors
Mesa: User error: GL_INVALID_ENUM in glIsEnabled(0xb72)
Mesa: User error: GL_INVALID_ENUM in glEnable(0xb72)
Mesa: 1 similar GL_INVALID_ENUM errors
Mesa: User error: GL_INVALID_ENUM in glIsEnabled(0xb72)
Mesa: User error: GL_INVALID_ENUM in glEnable(0xb72)

and if I tell to to "show" the geometry, it keeps poping up a message
about SIGFPE, that in gcc is:

Program received signal SIGFPE, Arithmetic exception.
0x00007f33daad9928 in _tnl_RasterPos () from /usr/lib64/dri/libdricore.so
(gdb) bt
#0  0x00007f33daad9928 in _tnl_RasterPos () from /usr/lib64/dri/libdricore.so
#1  0x00007f33daa86c97 in ?? () from /usr/lib64/dri/libdricore.so
#2  0x00007f33db0e3261 in MarkerSetDisplay (data=..., n=<value optimized out>, 
    k=<value optimized out>) at ../../../src/OpenGl/OpenGl_mrkrset.c:179
#3  0x00007f33db103235 in TsmSendMessage (el=<value optimized out>, 
    msg=<value optimized out>, data=..., n=44999116)
    at ../../../src/OpenGl/OpenGl_tsm.c:134
#4  0x00007f33db0d0beb in ExecuteStructureDisplay (data=<value optimized out>, 
    n=<value optimized out>, k=0x7fffadeaf5f0)
    at ../../../src/OpenGl/OpenGl_execstruct.c:463
#5  0x00007f33db103235 in TsmSendMessage (el=<value optimized out>, 
    msg=<value optimized out>, data=..., n=44999116)
    at ../../../src/OpenGl/OpenGl_tsm.c:134
#6  0x00007f33db0d0d51 in ExecuteStructureDisplay (data=<value optimized out>, 
    n=<value optimized out>, k=0x7fffadeafae0)
    at ../../../src/OpenGl/OpenGl_execstruct.c:423
#7  0x00007f33db103235 in TsmSendMessage (el=<value optimized out>, 
    msg=<value optimized out>, data=..., n=44999116)
    at ../../../src/OpenGl/OpenGl_tsm.c:134
#8  0x00007f33db10368e in TsmDisplayStructure (stid=<value optimized out>, 
    wsid=<value optimized out>) at ../../../src/OpenGl/OpenGl_tsm.c:339
#9  0x00007f33db0d30a8 in redraw_all_structs (wsid=203, vstid=203)
    at ../../../src/OpenGl/OpenGl_funcs.c:567

  The only suspecting thing I can see is:
(gdb) frame 2
#2  0x00007f33db0e3261 in MarkerSetDisplay (data=..., n=<value optimized out>, 
    k=<value optimized out>) at ../../../src/OpenGl/OpenGl_mrkrset.c:179
179                     glRasterPos3f( ptr->xyz[0],  ptr->xyz[1],  ptr->xyz[2] );
(gdb) p ptr->xyz[0]
$1 = 0
(gdb) p ptr->xyz[1]
$2 = 0
(gdb) p ptr->xyz[2]
$3 = 0

all the other offsets are not 0,0,0.
Comment 1 Paulo César Pereira de Andrade 2010-05-06 12:48:00 UTC
  The current solution I am using in the package is to add

export LIBGL_ALWAYS_INDIRECT=true

to the runSalome script.

  Also, the problem doesn't happen in all files; probably an issue if
there is a vertice at the 0,0,0 coordinate, in association with the
Mesa: User error: GL_INVALID_ENUM in glIsEnabled(0xb72)
Mesa: User error: GL_INVALID_ENUM in glEnable(0xb72)
errors
Comment 2 Paulo César Pereira de Andrade 2010-11-17 14:55:34 UTC
Just tested with a build of salome version 5.1.4.

Unlike when running on a computer with an intel card (bug #27333),
it now works without setting LIBGL_ALWAYS_INDIRECT, and this way
becomes fast/responsive in the opencascade viewer; vtk viewer
is very slow on both test systems (i586/i965 and x86_64/r300), and
should be a software issue as it was not so slower with salome
5.1.3. But still fills the console with these warnings:

Mesa: User error: GL_INVALID_ENUM in glIsEnabled(0xb72)
Mesa: User error: GL_INVALID_ENUM in glEnable(0xb72)
Mesa: 1 similar GL_INVALID_ENUM errors


Software version is:

$ rpm -q x11-server-xorg x11-driver-video-ati mesa lib64drm2
x11-server-xorg-1.9.2-1mdv2011.0
x11-driver-video-ati-6.13.99-0.20101029.1mdv2011.0
mesa-7.9-1mdv2011.0
lib64drm2-2.4.22-1mdv2011.0


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.