Volume rendering broken with QVTKOpenGLWidget on Windows / HD4000 and HD4600
mkdir build && cd build && cmake .. && cmake --build .
to use the new
QVTKOpenGLWidget, or with just
to use a plain
QVTKOpenGLWidget, the volume is not showing up on (at least)
- Windows 7 / HD 4600, or
- Windows 8.1 / HD 4000
On the Windows 7 machine, various Intel driver versions were tried, including the latest available.
It has been reported to work with Windows 10 / HD 530 (see the ML). It also works on my Linux / HD 4400.
Ken's theory on the mailing list was that this may be https://bugreports.qt.io/browse/QTBUG-60742. But I tried patching Qt 5.6 branch with
diff --git a/src/plugins/platforms/windows/qwindowsglcontext.cpp b/src/plugins/platforms/windows/qwindowsglcontext.cpp index 2eaae6b726..140b564060 100644 --- a/src/plugins/platforms/windows/qwindowsglcontext.cpp +++ b/src/plugins/platforms/windows/qwindowsglcontext.cpp @@ -751,8 +751,10 @@ static HGLRC createContext(const QOpenGLStaticContext &staticContext, // wglCreateContextAttribsARB fails and returns NULL if the requested context // version is not supported. This means that we will get the closest supported // context format that that which was requested and is supported by the driver - const int requestedVersion = qMin((format.majorVersion() << 8) + format.minorVersion(), - staticContext.defaultFormat.version); + //const int requestedVersion = qMin((format.majorVersion() << 8) + format.minorVersion(), + // staticContext.defaultFormat.version); + // Suggested by Ben @ vtk-developers + const int requestedVersion = (format.majorVersion() << 8) + format.minorVersion(); const int majorVersion = requestedVersion >> 8; const int minorVersion = requestedVersion & 0xFF;
and the problem persists, so I think that's a red herring.
I think this should be a blocker for 8.0.0, since it means volume rendering using
QVTKOpenGLWidget is not possible on many configurations.