Quad-buffer (Crystal Eyes) not working on Linux

The release notes for Paraview 5.7.0 says quad-buffer stereo (Crystal Eyes)
active shutter glasses work. However, I can not get “Crystal Eyes” stereo
working with Paraview 5.70.

I am installing Immersive Paraview on a traditional CAVE configuration at NIST.

3 Walls (Front, Left, Floor) in a corner arrangement
Nvidia Quadro RTX card 4 outputs:
X11 Display numbers -
       :0.0 Console LCD flat panel
       :0.1 Front projector
       :0.2 Left projector
       :0.3 Floor projector
CentOS 7.7 Linux

Also same problem on a problem on a home system:
Nvidia Quadro P1000
       X11 Display numbers: :2.0 Console, :3.0 Front, :4.0 Left, :5.0 Floor
       LCD monitors on all
Fedora 30

I believe I have the card, cables and driver properly configured since
glxgears works properly using this command.

 mpiexec   -env="DISPLAY=:0.1" /usr/bin/glxgears -stereo $config : \
           -env="DISPLAY=:0.2" /usr/bin/glxgears -stereo $config : \
           -env="DISPLAY=:0.3" /usr/bin/glxgears -stereo $config

I have tried a three process mpiexec pvserver and just single process started
with

praview --stereo --stereo-type="Crystal Eyes"

All other stereo modes work when selected in the GUI. I suspect I am seeing
just one eye. I not entirely sure I have a correct config.pvx file.
I have adapted the one cave.pvx example.

Are there any other config file examples?

Any suggestions on what I should do to get Crystal Eyes stereo working?

Thanks

@steve, can you provide information on how you’re launching your pvserver processes and also the cave.pvx file you used?

Note the 5.7 Quad-buffer note only refers to the Qt client supporting quad buffer. The support for stereo on the pvserver processes – which is what you’re relying on in this case – should be large unaffected by these changes.

Is the problem that I am using the pre-built binary?
After executing the start up script, in another window I type:

paraview --stereo --stereo-type="CRYSTAL EYES"

My start up script an cave.pvx are below.

Thanks,
Steve

Here is my server start up script

    #! /bin/bash
    # ParaView-5.7.0-MPI-Linux-Python3.7-64bit is from pre-compiled binaries
    export PARAVIEW_ROOT=/home/steve/localtmp/ncsw/PV/ParaView-5.7.0-MPI-Linux-Python3.7-64bit

    mpiexec=${PARAVIEW_ROOT}/bin/mpiexec
    pvserver=${PARAVIEW_ROOT}/bin/pvserver
    config=./cave.pvx

    $mpiexec -env="DISPLAY=:1.1" $pvserver --stereo --stereo-type="CRYSTAL EYES" $config :  \
             -env="DISPLAY=:1.2" $pvserver  --stereo --stereo-type="CRYSTAL EYES" $config :  \
            -env="DISPLAY=:1.3" $pvserver  --stereo --stereo-type="CRYSTAL EYES" $config

Here is cave.pvx


    <?xml version="1.0" ?>
    
    <pvx>
        <Process Type="client"/>
        <Process Type="server">
          <EyeSeparation Value="0.065"/>
          <!-- Front -->
          <Machine Name="caprica.local" 
    	    Geometry="1920x1080+0+0"
                FullScreen="1"
                ShowBorders="0"
                LowerLeft=" -1 -1  -1" 
                LowerRight=" 1 -1  -1" 
                UpperRight=" 1 1 -1"/> 
          <!-- Left -->
          <Machine Name="caprica.local" 
    	    Geometry="1680x1050+1920+0"
                FullScreen="1"
                ShowBorders="0"
                LowerLeft=" -1 -1  1" 
                LowerRight="-1 -1 -1" 
                UpperRight="-1  1 -1"/> 
          <!-- Floor -->
          <Machine Name="caprica.local" 
    	    Geometry="1280x720+3600+0"
                FullScreen="1"
                ShowBorders="0"
                LowerLeft=" -1 -1  1" 
                LowerRight=" 1 -1 -1" 
                UpperRight=" 1  -1 -1" /> 
          </Process>
    </pvx>

That should not be it.

I am looking into it now. I think I am able to reproduce the issue. I’ll keep you posted as I learn more.

Try launching pvserver with the following arguments as well: --stereo --stereo-type="Crystal Eyes". The arguments are currently needed for both the client and the server processes.

That is what my script does and I have run the paraview command with the two parameters. I have tried evry combination I can think of. Am I missing something?

Just to summarize:
using mpiexec I run 3 copies of pvserver
I run a single copy of paraview

I specify both stereo args on all.

What else should I try?

Thanks,
Steve

That’s strange; specifying stereo args to both processes did the trick for me with ParaView 5.7 binaries from paraview.org.

Looking at the code, the arguments are case sensitive. So trying using --stereo-type="Crystal Eyes" and not --stereo-type="CRYSTAL EYES".

I reproduce. My cave setup worked Perfectly with ParaView 5.6.2, but not with ParaView 5.7.0.

I will bisect and see where does this come from.

@steve : You mention a NVIDIA Quadro P1000 card but also RTX cards ? Afaik RTX doe not support Crystal Eyes. Your quadro should supports it though.

Its a Quadro RTX 8000 running the Nvidia driver 435.21
No that I am using exactly “Crystal Eyes” as the stereo type, I getting stereo.
I’m in the process of creating the correct connections in the VRplugin to VRPN. I will start with the example on the immersive Paraview wiki. If anyone has any additional examples or documentation, please pass them along.

-Steve

Great news !

Does it works with the P1000 as well ?

You can find VRPN examples here :
https://www.paraview.org/Wiki/Immersive_ParaView

This is what I missed in my own configuration. it is working perfectly here as well.

Yes, Crystal Eyes stereo is working on my Quadro P1000.
Note: My xorg.conf is set to create DISPLAYs :1.0 :1.1 :1.2, :1.3 and the P1000 system have common
flat panel monitors and not stereo capable projectors. So I declare its working based on seeing
the double images on the monitors.

Also, I don’t see double images on :0.0 were the paraview client runs. I do see the double image
on :1.1, :1.2, :1.3 (my simulated cave walls).