JeffersonLab / HDGeant4

Geant4 simulation for the GlueX experiment
4 stars 4 forks source link

OpenGL failure #221

Open aaust opened 6 months ago

aaust commented 6 months ago

The visualization with hdgeant4 -v on the ifarm fails with the following errors:

/vis/verbose errors
Visualization verbosity changed to errors (2)
/vis/open OGLSX 600x600+10+50
/vis/sceneHandler/create OGLSX
/vis/viewer/create ! ! 600x600+10+50
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

On ifarm9 (AlmaLinux9), the program crashes immediately:

===========================================================
#5  0x00007fe0514a1382 in OpenGLXpreload () at src/OpenGLXpreload.cc:13
#6  0x00007fe0503902be in main () from /u/group/halld/Software/builds/Linux_Alma9-x86_64-gcc11.4.1/hdgeant4/hdgeant4-2.40.0/tmp/Linux-g++/hdgeant4/libhdgeant4.so
#7  0x00007fe047e3feb0 in __libc_start_call_main () from /lib64/libc.so.6
#8  0x00007fe047e3ff60 in __libc_start_main_impl () from /lib64/libc.so.6
#9  0x0000000000743325 in _start ()
===========================================================

The control.in and vis.mac files to reproduce this are located in /work/halld2/home/aaustreg/tmp/laveen_test/

rjones30 commented 6 months ago

Hello Alex,

Yes, geant4 visualization relies on some extended functionality in OpenGL. Normally this requires that the application is running on your local desktop, not on a remote server. It is possible to run it on a remote service (I do it all the time from my chromebook) but it requires some work to configure it. Are you attempting this from a vnc session, or just a ssh connection?

-Richard Jones

On Fri, May 10, 2024 at 10:15 AM Alexander Austregesilo < @.***> wrote:

The visualization with hdgeant4 -v on the ifarm fails with the following errors:

/vis/verbose errors Visualization verbosity changed to errors (2) /vis/open OGLSX 600x600+10+50 /vis/sceneHandler/create OGLSX /vis/viewer/create ! ! 600x600+10+50 libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast

On ifarm9 (AlmaLinux9), the program crashes immediately:

===========================================================

5 0x00007fe0514a1382 in OpenGLXpreload () at src/OpenGLXpreload.cc:13

6 0x00007fe0503902be in main () from /u/group/halld/Software/builds/Linux_Alma9-x86_64-gcc11.4.1/hdgeant4/hdgeant4-2.40.0/tmp/Linux-g++/hdgeant4/libhdgeant4.so

7 0x00007fe047e3feb0 in __libc_start_call_main () from /lib64/libc.so.6

8 0x00007fe047e3ff60 in __libc_start_main_impl () from /lib64/libc.so.6

9 0x0000000000743325 in _start ()

===========================================================

The control.in and vis.mac files to reproduce this are located in /work/halld2/home/aaustreg/tmp/laveen_test/

— Reply to this email directly, view it on GitHub https://github.com/JeffersonLab/HDGeant4/issues/221, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3YKWFUKF3RXV6NTHVG2OTZBTI77AVCNFSM6AAAAABHQWXH46VHI2DSMVQWIX3LMV43ASLTON2WKOZSGI4DSOBSGEYTEMY . You are receiving this because you are subscribed to this thread.Message ID: @.***>

aaust commented 6 months ago

Thanks for the reply, I am trying to use an ssh connection.

rjones30 commented 6 months ago

With an ssh connection, what graphical transport were you intending for OpenGL to use so that it can open a graphics window on your desktop? One easy test is to try to run "glxgears". If it works and the graphic comes up and moves at a normal speed, you have basic OpenGL functionality with your connection. Until that is working, no good to move on to hdgeant4. If it is working, there are still layers you have to test before hdgeant4 is visualization will perform well.

-Richard Jones

On Fri, May 10, 2024 at 1:37 PM Alexander Austregesilo < @.***> wrote:

Thanks for the reply, I am trying to use an ssh connection.

— Reply to this email directly, view it on GitHub https://github.com/JeffersonLab/HDGeant4/issues/221#issuecomment-2105009928, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3YKWFF4P3GLKA6FGJNFELZBUAWFAVCNFSM6AAAAABHQWXH46VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBVGAYDSOJSHA . You are receiving this because you commented.Message ID: @.***>

aaust commented 6 months ago

Thanks for the tip. When I connect to ifarm9 (AlmaLinux9) with "-Y", I see the animated gears. With the same connection, hdgeant4 -v actually opens an empty viewer window. When I try to /control/execute the macro, it complains about some fonts and does not display anything.

G4OpenGLXViewer::CreateFontLists XLoadQueryFont failed for font
  -adobe-courier-bold-r-normal--10-100-75-75-m-60-iso8859-1

In the ifarm with CentOS7, glxgears directly throws this error:

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  44
  Current serial number in output stream:  46
rjones30 commented 6 months ago

Yes, this error message tells you that certain higher level OpenGL features are not available based on the X11 connection you now have. This is what works for me on Centos7.

  1. run a vnc session on the remote machine and connect to it over vnc
  2. use vglrun to attach your remote session to the gpu hardware on the remote machine

This vglrun command takes over the gpu accelerator on the remote machine and uses it to enable the high-level OpenGL features you need for g4 visualization. A couple of caveats: I needed root permission on my remote server to install the VirtualGL package (vglrun command) and the remote box has a pretty good gpu (Nvidia gtx-570). Without the vglrun, the graphics would run (inside vnc, not without it) but the drawings would be slow and glitchy with bogus lines and shading errors until I got the gpu to work with it. I suspect that if you run everything on your local desktop, it works out of the box.

-Richard Jones

On Fri, May 10, 2024 at 1:56 PM Alexander Austregesilo < @.***> wrote:

Thanks for the tip. When I connect to ifarm9 (AlmaLinux9) with "-Y", I see the animated gears. With the same connection, hdgeant4 -v actually opens an empty viewer window. When I try to /control/execute the macro, it complains about some fonts and does not display anything.

G4OpenGLXViewer::CreateFontLists XLoadQueryFont failed for font -adobe-courier-bold-r-normal--10-100-75-75-m-60-iso8859-1

In the ifarm with CentOS7, glxgears directly throws this error:

libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 152 (GLX) Minor opcode of failed request: 3 (X_GLXCreateContext) Value in failed request: 0x0 Serial number of failed request: 44 Current serial number in output stream: 46

— Reply to this email directly, view it on GitHub https://github.com/JeffersonLab/HDGeant4/issues/221#issuecomment-2105040217, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3YKWFOBYPMPGGLLIJVT4TZBUC47AVCNFSM6AAAAABHQWXH46VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBVGA2DAMRRG4 . You are receiving this because you commented.Message ID: @.***>