Visualization on MacOSX: OGLIX works, OGL fails

I’ve been using Geant4 on my MacBook (High Sierra, 10.13.6) for many years, including visualization. In my own macros, I typically use /vis/open OGLIX 600+600 to get a specific window size.

I’m trying to reproduce a user’s problem, and their macro uses the generic /vis/open OGL. This should work just fine, especially if I’m running interactively. But it is failing:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  1 (X_CreateWindow)
  Serial number of failed request:  25
  Current serial number in output stream:  32

I’ve stopped and restarted XQuartz (2.7.11), to no effect. If I change OGL to OGLIX, it works fine. Is this something other Mac users have seen? If not, does it indicate a G4 CMake mistake on my part?

Hi Mike

Looks like something that I encountered - but the problem was the opposite of yours - I had a problem with OGLIX. Guy committed a fix in July, so it will be in the next release. (Maybe you could try picking up the fix - see snippets from OpenGL/History below.)

But I never really understood it. I too am with XQuartz 2.7.11. I’m running MacOS Mojave 10.14.6.

A couple of workarounds from earlier eras:

  • Shtutdown and restart XQuartz (but you’ve tried that).
  • Make sure the requisite visuals are up and running. In a terminal window
    xstdcmap -best

Good luck

John

16 July 2019 John Allison (opengl-V10-05-08)

  • G4OpenGLImmediateXViewer:
    o Revert fix in OpenGL-V10-05-05. The fix in OpenGL-V10-05-07 is better.

06 July 2019 Guy Barrand (OpenGL-V10-05-07)

  • G4OpenGLXViewer.cc:
    Improve logic for finding a colormap.

10 June 2019 John Allison (OpenGL-V10-05-05)

  • G4OpenGLImmediateXViewer:
    Force double buffer context. (This can happen anyway when the display
    list limit is reached in stored mode. Seems to be no problem.) We were
    finding that the single buffer visual gave an X Error (BadMatch) on
    some systems, so let us force the use if a double buffer. All systems
    have double buffers nowadays.

Thanks, John. I can give the development side a try.

Hi, John. This had come in shortly before I left for American Thanksgiving for the week. I’ve just updated my Git work area to the latest upstream/master, and rebuilt G4. The new code works properly on my Mac with just /vis/open OGL. Thank you!