View Issue Details

IDProjectCategoryView StatusLast Update
0004252Slicer4Core: Renderingpublic2018-04-10 08:59
ReporterlassoanAssigned Tojcfr 
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
Product Version 
Target VersionbacklogFixed in Version 
Summary0004252: OpenGL2: Slicer crashes on start when started through Windows Remote Desktop
Description

Windows Remote Desktop seems to support only OpenGL1.1. If Slicer with OpenGL2 is attempted to started in a remote session, Slicer crashes. If Slicer is already running when the Remote Desktop session starts then there is no problem.

If Slicer is built with console display enabled, it prints this message:
GL version 2.1 with the gpu_shader4 extension is not supported by your graphics driver but is required for the new OpenGL rendering backend. Please update your OpenGL driver. If you are using Mesa please make sure you have version 10.6.5 or later and make sure your driver in Mesa supports OpenGL 3.2.
Segmentation doesn't appear in slice viewer - add to higher level layer?

But by default console display is disabled so the user has no idea what's happening, why Slicer crashes.

TagsNo tags attached.

Activities

lassoan

lassoan

2016-09-09 09:42

developer  

start.bat (1,276 bytes)
lassoan

lassoan

2016-09-09 09:43

developer   ~0014081

The attached batch file (http://www.na-mic.org/Bug/file_download.php?file_id=1631&type=bug) can be copied in the same location as Slicer.exe and can be used to start Slicer through a remote desktop connection (it terminates the connection and starts Slicer, the user then can reconnect and use Slicer).

lassoan

lassoan

2016-09-09 09:46

developer   ~0014082

The user should at least get a meaningful error message. Maybe the workaround batch file could be included in the installation package.

lassoan

lassoan

2016-09-09 09:49

developer   ~0014083

There are other remote desktop clients that don't prevent Slicer startup (for example, Slicer can be started using TeamViewer) - either because they don't use GPU hardware acceleration (just copy the screen content) or support higher OpenGL versions.

jcfr

jcfr

2016-09-13 09:40

administrator   ~0014090

From Ken: Microsoft only supports opengl 1.4 in their remote desktop. They would need to use a different remote desktop type app such as VNC/Nomachine.

I guess we could detect the OpenGL version and gracefully warn the user ?

lassoan

lassoan

2016-09-13 09:45

developer   ~0014091

Yes, the main issue here is that the user has no idea why Slicer crashes and what he can do about it.

Not that if Slicer is already started then it works correctly through Windows RDP. So, it might be also possible to make Slicer work by changing initial VTK OpenGL checks.

msmolens

msmolens

2016-09-21 10:48

developer   ~0014109

I'm able to remote desktop into a Windows 10 system (build 10586.589) then start and use a Slicer OpenGL2 build, complete with GPU volume rendering. I tested with client machines running Windows 10 and Ubuntu 16.04 (using Remmina remote desktop client).

Still, with older Windows versions, or if it fails for another reason, clearly Slicer should give some indication to the user of what went wrong.

@lassoan Which version of Windows are you using?

lassoan

lassoan

2016-09-21 11:24

developer   ~0014110

I have the same Windows version, but Slicer still does not start.

When I'm connected to a Windows 10 Enterprise system (version 1511, OS build 10586.589) using Windows remote desktop client (mstsc) then Slicer (and ParaView) still crashes without any error message when I attempt to start it.

jcfr

jcfr

2016-09-21 12:04

administrator   ~0014111

@Andras: Do you have two video cards on your system ?

lassoan

lassoan

2016-09-21 12:55

developer   ~0014112

No, just one, GeForce GTX 570. Have you tried mstsc from a Windows computer to another? Maybe Remmina does something special.

msmolens

msmolens

2016-09-21 14:31

developer   ~0014114

Sorry my previous message wasn't clear--Remmina is Linux-only. On the Windows 10 client I used mstsc.

lassoan

lassoan

2016-09-22 07:26

developer   ~0014115

My computer was upgraded to:
OS Name Microsoft Windows 10 Enterprise
Version 10.0.14393 Build 14393

The problem is still the same. Slicer still crashes on startup when loggin in through mstsc.

Do you run your Windows on a virtual machine that has RemoteFX enabled?

msmolens

msmolens

2016-09-22 09:53

developer   ~0014116

In my case Windows is running natively. One difference that might be relevant is that I'm using a Quadro K2200.

lassoan

lassoan

2016-09-22 10:23

developer   ~0014117

Yes, Quadro may make a difference (https://gridforums.nvidia.com/default/topic/346/general-discussion/opengl-and-rdp/).

It seems that we have several workarounds (use Quadro, use different remote desktop protocol, start the application using the attached batch file and reconnect). None of them is very easy or convenient, but probably most use cases are adequately covered. So, I think the only thing we miss is display of a meaningful error message (with a link to a webpage where workarounds are described) when insufficient OpenGL support is detected.

pieper

pieper

2017-04-20 11:35

administrator   ~0014432

Just a note, I've recently seen the same issue with other software (chrome and firefox running WebGL). They crash if started during a remote desktop connection but you can start them natively and then connect once they are running.

lassoan

lassoan

2017-05-10 12:52

developer   ~0014478

This pull request aims for a more graceful handling of OpenGL insufficiency: https://gitlab.kitware.com/vtk/vtk/merge_requests/2812

pieper

pieper

2018-03-15 10:44

administrator   ~0015567

This looks like it will also help: https://gitlab.kitware.com/vtk/vtk/commit/29607014a2dea0931ff30c0b584b25f760233245

jcfr

jcfr

2018-03-29 23:27

administrator   ~0015621

Should we close the issue ?

following r27104, the following is integrated:

    * kitware/VTK@a7988f5 (from Francois Budin <francois.budin@kitware.com>)
      OpenGL2: Check that context exists before trying to pop context.

        On some linux drivers (such as nvidia version 384.111 and 387.34) setting the
        context to zero causes a segfault so check before setting in cases where the
        destruction may be trying to pop to a zero context.

and following r27080 the following was integrated:

    * kitware/VTK@51e0dc9
      vtkOpenGLRenderWindow: Improve error message reported when OpenGL is not supported.

        Unable to find a valid OpenGL 3.2 or later implementation.
        Please update your video card driver to the latest version.
        If you are using Mesa please make sure you have version 11.2 or
        later and make sure your driver in Mesa supports OpenGL 3.2 such
        as llvmpipe or openswr. If you are on windows and using Microsoft
        remote desktop note that it only supports OpenGL 3.2 with nvidia
        quadro cards. You can use other remoting software such as nomachine
        to avoid this issue.

        See https://issues.slicer.org/view.php?id=4252

Otherwise, did someone try to build with VTK_USE_OPENGL_DELAYED_LOAD set to ON ?

lassoan

lassoan

2018-04-09 09:04

developer   ~0015654

Parallels on Mac has very poor OpenGL support (https://forum.parallels.com/threads/opengl-3-2.290841/page-2, as of today, it still only supports only OpenGL2.1). Therefore, recent Slicer versions, which use OpenGL2 rendering backend cannot run on a Parallels virtual machine.

Potential solutions:

  • Use native MacOSX build on Mac computers.
  • VMWare Fusion has better OpenGL support, so it may be possible to run Slicer on that, but this has not been confirmed yet. The VMWare virtual machine may need some configuration tuning to actually have access to recent OpenGL API version.
pieper

pieper

2018-04-10 08:59

administrator   ~0015655

This is still an issue on windows remote desktop. I just tested the 2018-04-09 build and the application crashes with no indication of why.

If we cannot fix the underlying issue then we should at least detect it and display the warning text in a dialog.

Issue History

Date Modified Username Field Change
2016-09-09 09:38 lassoan New Issue
2016-09-09 09:38 lassoan Status new => assigned
2016-09-09 09:38 lassoan Assigned To => jcfr
2016-09-09 09:42 lassoan File Added: start.bat
2016-09-09 09:43 lassoan Note Added: 0014081
2016-09-09 09:45 lassoan Description Updated View Revisions
2016-09-09 09:46 lassoan Note Added: 0014082
2016-09-09 09:49 lassoan Note Added: 0014083
2016-09-13 09:40 jcfr Note Added: 0014090
2016-09-13 09:45 lassoan Note Added: 0014091
2016-09-21 10:48 msmolens Note Added: 0014109
2016-09-21 11:24 lassoan Note Added: 0014110
2016-09-21 12:04 jcfr Note Added: 0014111
2016-09-21 12:55 lassoan Note Added: 0014112
2016-09-21 14:31 msmolens Note Added: 0014114
2016-09-22 07:26 lassoan Note Added: 0014115
2016-09-22 09:53 msmolens Note Added: 0014116
2016-09-22 10:23 lassoan Note Added: 0014117
2017-04-20 11:35 pieper Note Added: 0014432
2017-05-10 12:52 lassoan Note Added: 0014478
2017-06-15 14:05 lassoan Summary Slicer crashes on start when started through Windows Remote Desktop => OpenGL2: Slicer crashes on start when started through Windows Remote Desktop
2018-03-15 10:44 pieper Note Added: 0015567
2018-03-29 23:27 jcfr Note Added: 0015621
2018-03-29 23:28 jcfr Target Version => backlog
2018-04-09 09:04 lassoan Note Added: 0015654
2018-04-10 08:59 pieper Note Added: 0015655