Announcement

Collapse
No announcement yet.

What's going on with OpenGL in nDisplay?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    What's going on with OpenGL in nDisplay?

    I see that since 4.23 OpenGl has been deprecated. Is it being deprecated in favor of Vulkan or something? nDisplay requires it for NV swap lock, so what's going to happen there?

    #2
    Nvidia synchronization should still work with DirectX 11 and software swap synchronization (swap_sync_policy="1")

    Comment


      #3
      Originally posted by mt085 View Post
      Nvidia synchronization should still work with DirectX 11 and software swap synchronization (swap_sync_policy="1")
      Wouldn't this sort of miss the point of having hardware swap lock?

      On a more critical topic for the particular system I'm dealing with (28-node/56-screen "cave" using NVidia Quadro GPUs), what about Frame Sequential stereo 3D, i.e. OpenGL hardware Quad-Buffering? We don't have the ability to use left-right/top-bottom with our system, so those options are out. How are we to get frame sequential or similar working under DX11/12?

      Comment


        #4
        I'd be curious to hear from one of the nDisplay devs about the removal of OpenGL from UE4 as it kinda means both hardware frame sync and frame-sequential stereoscopic (quad buffers) are no longer available to UE4 users. If this can work in some other way (while still being hardware synced, and still having quad-buffer-like stereoscopic that doesn't render as left-right/top-bottom) then I'd love to know, as that's exactly how our vis cluster works.

        Or will nDisplay no longer support hardware frame syncing and quad-buffering?

        Comment


          #5
          Hi Conan, the last I've heard on UDN is that Vulkan support is planned for 4.25 nDisplay. I don't know what that will bring to the table exactly. I am in a similar situation, in charge of a vis cluster at an institution. Would you be interested in exchanging emails or other contact to discuss first-hand experiences?

          Comment


            #6
            I haven't found much info on Vulkan having support for hardware quad-buffering, or hardware frame syncing, unless you use OpenGL-Vulkan interop. And since GL is removed it doesn't seem like that will be possible at all. Hopefully I am wrong and Vulkan does have support (I haven't looked into the multi-view stuff yet, which might be the answer to quad-buffering at least).
            Seems like nDisplay can only do stereo with systems that support left-right/top-bottom now, which would mean our lab would need to run another 2000 meters of display cables from the cluster to the displays, which isn't really an option. Hopefully the UE4/nDisplay devs have some sort of plan to get quad-buffers/hardware sync going again.
            Last edited by ConanB; 01-19-2020, 07:07 PM.

            Comment


              #7
              nDisplay dev here!

              I see that since 4.23 OpenGl has been deprecated. Is it being deprecated in favor of Vulkan or something? nDisplay requires it for NV swap lock, so what's going to happen there?
              On a more critical topic for the particular system I'm dealing with (28-node/56-screen "cave" using NVidia Quadro GPUs), what about Frame Sequential stereo 3D, i.e. OpenGL hardware Quad-Buffering? We don't have the ability to use left-right/top-bottom with our system, so those options are out. How are we to get frame sequential or similar working under DX11/12?
              Windows 8.1+ support DirectX FrameSequential (Quad Buffer) Stereoscopic rendering and nDisplay working perfectly.
              You have to enable it in your desktop settings, there is a checkbox down to resolution settings.
              There are also few settings in Nvidia control panel that need to be on.

              NV swap lock
              At this moment we implemented a custom sync algorithm based on DWM vBlank timings, native nVidia swap sync being in active development.

              Vulkan
              Scheduled for 26!

              Comment


                #8
                Originally posted by ConanB View Post
                I haven't found much info on Vulkan having support for hardware quad-buffering, or hardware frame syncing, unless you use OpenGL-Vulkan interop. And since GL is removed it doesn't seem like that will be possible at all. Hopefully I am wrong and Vulkan does have support (I haven't looked into the multi-view stuff yet, which might be the answer to quad-buffering at least).
                Seems like nDisplay can only do stereo with systems that support left-right/top-bottom now, which would mean our lab would need to run another 2000 meters of display cables from the cluster to the displays, which isn't really an option. Hopefully the UE4/nDisplay devs have some sort of plan to get quad-buffers/hardware sync going again.
                I might have an answer on the hardware frame syncing. Before nDisplay we had our own plugin (i was actually the person who committed the -quad-buffer command line option to ue4 ). When we heard that opengl will become deprecated (version 4.21 was already displaying some artifacts in stereo) I looked if vulkan is feasible. I could not find any mention of hardware frame syncing in any documentation so we contacted nvidia. The answer we got back is that they are working on it. This was 3 months ago. Our system runs on linux so we can't use directx and have been stuck with using an old version of ue4.
                Last edited by Pjotr; 03-13-2020, 04:07 AM.
                Working at the University of Groningen
                UE4 on a huge display
                UE4 VRPN plugin

                Comment


                  #9
                  A little thread necromancy...

                  Originally posted by hell0w0rld123 View Post
                  nDisplay dev here!

                  Windows 8.1+ support DirectX FrameSequential (Quad Buffer) Stereoscopic rendering and nDisplay working perfectly.
                  You have to enable it in your desktop settings, there is a checkbox down to resolution settings.
                  There are also few settings in Nvidia control panel that need to be on.
                  Any extra info on the required settings? I'v been trying to test 4.25 now that I'm back in the lab (what a year eh?) and from what I can tell the sync now works under DX, but I can't get Frame Sequential steroscopic to function for UE4 at all.

                  For extra info, our cluster uses 28 nodes with Nvidia Quadro M6000's, each driving 2 HD displays in mosaic (1920x2160) using quad-buffering for stereoscopic. We can run Win7 and 10, DX11/12 etc
                  Nvidia stereoscopic is enabled, the nvidia test app works etc, but also we've run our own OpenGL applications that use quad-buffering and have used Unity3D with quad-buffering. Previously nDisplay worked when OpenGL was still a part of it.

                  We don't have the ability to run top-bottom/side-by-side with our cluster as that would require running a few hundred meters of extra cables and redoing our cluster, and with covid finances that's not an option

                  Is there some extra setting in UE that I've missed? The nDisplay documentation for Stereoscopic still mentions OpenGL etc and doesn't say there are any additional requirements for Frame Sequential (i.e. nothing about fullscreen/windowed, any other required windows settings).

                  Here's a cutdown test config I just tried using with the provided example nDisplay scene using just 2 nodes (fyi cyl14 is our nvidia sync master):

                  Code:
                  [info] version="23"
                  
                  [cluster_node] id="cyl13" addr="192.168.1.113" window="wnd_cyl13"
                  [cluster_node] id="cyl14" addr="192.168.1.114" window="wnd_cyl14" port_cs="7777" port_ss="7778" master="true"
                  
                  [window] id="wnd_cyl13" viewports="vp_cyl13" fullscreen="true" resx="1920" resy="2160"
                  [window] id="wnd_cyl14" viewports="vp_cyl14" fullscreen="true" resx="1920" resy="2160"
                  
                  [viewport] id="vp_cyl13" x="0" y="0" width="1920" height="2160" projection="proj_cyl13" camera="camera_static"
                  [viewport] id="vp_cyl14" x="0" y="0" width="1920" height="2160" projection="proj_cyl14" camera="camera_static"
                  
                  [projection] id="proj_cyl13" type="simple" screen="scr_cyl13"
                  [projection] id="proj_cyl14" type="simple" screen="scr_cyl14"
                  
                  [screen] id="scr_cyl13" loc="X=2.8985,Y=-1.266,Z=2.3435" rot="P=0,Y=-24.0814,R=0" size="X=1.320968,Y=1.497" parent="cyl_origin"
                  [screen] id="scr_cyl14" loc="X=2.8985,Y=-1.266,Z=0.844" rot="P=0,Y=-24.0814,R=0" size="X=1.320968,Y=1.498" parent="cyl_origin"
                  
                  [scene_node] id="cyl_origin" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0"
                  [scene_node] id="socket_cam" loc="X=0,Y=0,Z=1.6" rot="P=0,Y=0,R=0" parent="cyl_origin"
                  
                  [camera] id="camera_static" loc="X=0,Y=0,Z=0" parent="socket_cam" eye_swap="false" eye_dist="0.064" force_offset="0"
                  
                  [general] swap_sync_policy="2"
                  
                  [network] cln_conn_tries_amount="10" cln_conn_retry_delay="1000" game_start_timeout="30000" barrier_wait_timeout="5000"
                  Any help figuring out this issue would be greatly appreciated. Quad-buffering is always causing us hassles as left-right or top-bottom would be so much simpler, but unfortunately this is the system we're dealing with.

                  Oh and also...
                  Originally posted by Pjotr View Post

                  I might have an answer on the hardware frame syncing. Before nDisplay we had our own plugin (i was actually the person who committed the -quad-buffer command line option to ue4 ). When we heard that opengl will become deprecated (version 4.21 was already displaying some artifacts in stereo) I looked if vulkan is feasible. I could not find any mention of hardware frame syncing in any documentation so we contacted nvidia. The answer we got back is that they are working on it. This was 3 months ago. Our system runs on linux so we can't use directx and have been stuck with using an old version of ue4.
                  I saw your work a few years ago Pjotr, great stuff and cheers for the quad buffering support in UE4. Now to just see if I can get it going again

                  Comment


                    #10
                    Originally posted by ConanB View Post
                    A little thread necromancy...



                    Any extra info on the required settings? I'v been trying to test 4.25 now that I'm back in the lab (what a year eh?) and from what I can tell the sync now works under DX, but I can't get Frame Sequential steroscopic to function for UE4 at all.

                    For extra info, our cluster uses 28 nodes with Nvidia Quadro M6000's, each driving 2 HD displays in mosaic (1920x2160) using quad-buffering for stereoscopic. We can run Win7 and 10, DX11/12 etc
                    Nvidia stereoscopic is enabled, the nvidia test app works etc, but also we've run our own OpenGL applications that use quad-buffering and have used Unity3D with quad-buffering. Previously nDisplay worked when OpenGL was still a part of it.

                    We don't have the ability to run top-bottom/side-by-side with our cluster as that would require running a few hundred meters of extra cables and redoing our cluster, and with covid finances that's not an option

                    Is there some extra setting in UE that I've missed? The nDisplay documentation for Stereoscopic still mentions OpenGL etc and doesn't say there are any additional requirements for Frame Sequential (i.e. nothing about fullscreen/windowed, any other required windows settings).

                    Here's a cutdown test config I just tried using with the provided example nDisplay scene using just 2 nodes (fyi cyl14 is our nvidia sync master):

                    Code:
                    [info] version="23"
                    
                    [cluster_node] id="cyl13" addr="192.168.1.113" window="wnd_cyl13"
                    [cluster_node] id="cyl14" addr="192.168.1.114" window="wnd_cyl14" port_cs="7777" port_ss="7778" master="true"
                    
                    [window] id="wnd_cyl13" viewports="vp_cyl13" fullscreen="true" resx="1920" resy="2160"
                    [window] id="wnd_cyl14" viewports="vp_cyl14" fullscreen="true" resx="1920" resy="2160"
                    
                    [viewport] id="vp_cyl13" x="0" y="0" width="1920" height="2160" projection="proj_cyl13" camera="camera_static"
                    [viewport] id="vp_cyl14" x="0" y="0" width="1920" height="2160" projection="proj_cyl14" camera="camera_static"
                    
                    [projection] id="proj_cyl13" type="simple" screen="scr_cyl13"
                    [projection] id="proj_cyl14" type="simple" screen="scr_cyl14"
                    
                    [screen] id="scr_cyl13" loc="X=2.8985,Y=-1.266,Z=2.3435" rot="P=0,Y=-24.0814,R=0" size="X=1.320968,Y=1.497" parent="cyl_origin"
                    [screen] id="scr_cyl14" loc="X=2.8985,Y=-1.266,Z=0.844" rot="P=0,Y=-24.0814,R=0" size="X=1.320968,Y=1.498" parent="cyl_origin"
                    
                    [scene_node] id="cyl_origin" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0"
                    [scene_node] id="socket_cam" loc="X=0,Y=0,Z=1.6" rot="P=0,Y=0,R=0" parent="cyl_origin"
                    
                    [camera] id="camera_static" loc="X=0,Y=0,Z=0" parent="socket_cam" eye_swap="false" eye_dist="0.064" force_offset="0"
                    
                    [general] swap_sync_policy="2"
                    
                    [network] cln_conn_tries_amount="10" cln_conn_retry_delay="1000" game_start_timeout="30000" barrier_wait_timeout="5000"
                    Any help figuring out this issue would be greatly appreciated. Quad-buffering is always causing us hassles as left-right or top-bottom would be so much simpler, but unfortunately this is the system we're dealing with.

                    Oh and also...


                    I saw your work a few years ago Pjotr, great stuff and cheers for the quad buffering support in UE4. Now to just see if I can get it going again
                    OpenGL was dropped by the engine.
                    We have numerous CAVE systems working well with the recent UE4. I bet its something with your windows settings.
                    Make sure you have "3D Display" set under your display settings and other settings in the Nvidia control panel, Stereo 3D panel should say something like "Quadro Professional Stereo" etc.

                    I hope that helps!
                    vitalii

                    Comment


                      #11
                      Beginning with the Windows 10 May 2020 Update (20H1), the method for selecting which graphics processor to use for applications has changed.
                      Nvidia: Change in process of assigning GPUs to use for applications, URL: https://nvidia.custhelp.com/app/answ...tail/a_id/5035

                      Comment


                        #12
                        Originally posted by hell0w0rld123 View Post
                        Scheduled for 26!
                        Preview just released, Vulkan seems to be still not natively supported
                        Is there any new info on getting nDisplay back up on linux clusters nowadays?

                        Comment

                        Working...
                        X