On Windows, if Krita/Qt cannot dlopen any opengl/angle/direct3d dll, Krita won't start at all. See https://forum.kde.org/viewtopic.php?f=139&t=161175&p=418872#p418830
Git commit 46ec23e4f8847288dce507ef639caff2bc588ee6 by Boudewijn Rempt. Committed on 21/06/2019 at 12:30. Pushed by rempt into branch 'master'. Check whether there's a context before accessing it I doubt this helps with 408872, but it's a good idea to do in any case. M +19 -16 libs/ui/canvas/kis_mirror_axis.cpp M +3 -1 libs/ui/opengl/KisScreenInformationAdapter.cpp https://invent.kde.org/kde/krita/commit/46ec23e4f8847288dce507ef639caff2bc588ee6
Git commit 7e172142279e5bb338d61e42a38aa90287315a44 by Boudewijn Rempt. Committed on 24/06/2019 at 08:20. Pushed by rempt into branch 'krita/4.2'. Check whether there's a context before accessing it I doubt this helps with 408872, but it's a good idea to do in any case. M +19 -16 libs/ui/canvas/kis_mirror_axis.cpp M +3 -1 libs/ui/opengl/KisScreenInformationAdapter.cpp https://invent.kde.org/kde/krita/commit/7e172142279e5bb338d61e42a38aa90287315a44
Git commit b5cb7448cab8d738ef7a8673429baf4533ad4e0e by Boudewijn Rempt. Committed on 26/06/2019 at 09:38. Pushed by rempt into branch 'master'. Make it possible to override the Angle Renderer This is so I can experiment with the warp rasterizer. M +4 -2 krita/main.cc https://invent.kde.org/kde/krita/commit/b5cb7448cab8d738ef7a8673429baf4533ad4e0e
See also https://stackoverflow.com/questions/27704529/deploying-qt5-on-windows-without-hardware-acceleration
Also this: https://bugreports.qt.io/browse/QTBUG-42240
Okay, in 4.1.7 we have the same output from Qt asking desperately for angle, d3dcompiler_4x.dll and opengl32sw.dll. Then there's only a crash when loading the Touch docker. So I doubt it's purely a Qt problem, and we need to investigate how our KisOpenGLModeProber.cpp messes things up vis-a-vis 4.1. And we need to disable the Touch docker if ther's no opengl.
I guess this broke in commit 6384d4aa82e0980da6f3e6d07ec3461132a62576 Author: Dmitry Kazakov <dimula73@gmail.com> Date: Sat Jan 26 19:23:06 2019 +0300 Imeplemented automatic selection of a renderer and/or surface format This patch generalizes the thing previously implemented in kis_opengl_win by Alvin Wong long ago. Way to reproduce: create a brand new empty Windows 7 VM and start Krita in it. Windragon's code allows Krita to start, the generalized code doesn't.
Dmitry, I've assigned this to you, and it's the absolutely highest priority bug we have at the moment. As soon as you've fixed it, I will make a new release.
Debugview output froma win10 user: 00000001 01:53:51 a.m. [4428] WTContextManager() this:745af008 00000002 01:53:51 a.m. [4428] WTRoundArray() this:745af858 00000003 01:53:52 a.m. [4428] qt.qpa.gl: Basic wglCreateContext gives version 2.1 00000004 01:53:52 a.m. [4428] qt.qpa.gl: OpenGL 2.0 entry points available 00000005 01:53:52 a.m. [4428] qt.qpa.gl: GPU features: QSet("disable_desktopgl", "disable_program_cache") 00000006 01:53:52 a.m. [4428] qt.qpa.gl: Disabling Desktop GL: GpuDescription(vendorId=0x8086, deviceId=0x46, subSysId=0x40a1028, revision=2, driver: "igdumdx32.dll", version=8.15.10.2993, "Intel(R) HD Graphics""") 00000007 01:53:52 a.m. [4428] qt.qpa.gl: Disabling program cache: GpuDescription(vendorId=0x8086, deviceId=0x46, subSysId=0x40a1028, revision=2, driver: "igdumdx32.dll", version=8.15.10.2993, "Intel(R) HD Graphics""") 00000008 01:53:52 a.m. [4428] qt.qpa.gl: supportedRenderers GpuDescription(vendorId=0x8086, deviceId=0x46, subSysId=0x40a1028, revision=2, driver: "igdumdx32.dll", version=8.15.10.2993, "Intel(R) HD Graphics""") 0 renderer: QFlags(0x2|0x4|0x8|0x20|0x200) 00000009 01:53:52 a.m. [4428] qt.qpa.gl: Qt: Using EGL from libEGL 00000010 01:53:52 a.m. [4428] qt.qpa.gl: Qt: Using OpenGL ES 2.0 from libGLESv2 00000011 01:53:53 a.m. [4428] qt.qpa.gl: create Created EGL display 0x39aa018 v 1 . 4 00000012 01:53:53 a.m. [4428] qt.qpa.gl: createPlatformOpenGLContext QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile) 00000013 01:53:53 a.m. [4428] QWindowsEGLContext: Failed to create context, eglError: 3005, this: 0x39467c8 00000014 01:53:53 a.m. [4428] qt.qpa.gl: ~QWindowsEGLStaticContext Releasing EGL display 0x39aa018
On my vm without d3d, I tested three versions: 4.1.7/5.9 4.1.8/5.12.4 4.2.2/5.12.4 no opengl32ws runs does not run does not start w/ opengl32sw runs runs shows window, but crashes
Created attachment 121269 [details] Log file for Intel 965 Express (Merom) Here is a log file for Krita on very old Core 2 Duo (Merom). Krita starts and works fine, but only in OpenGL mode. Angle (DirectX) supports only OpenGL ES 2, which is not supported by Krita.
Git commit b3484aa8d64b58f3505f373a0d122214d5973678 by Dmitry Kazakov. Committed on 03/07/2019 at 19:09. Pushed by dkazakov into branch 'master'. Implement "Software Renderer" option for OpenGL engine On old GPUs that support D3D<=10.0 we cannot use Angle for emulating openGL, therefore we should use some software implementation (or try using D3D9 with its openGLES 2.0). This patch adds an option to select software rasterizer WARP, created by Microsoft, which is a part of DirectX 11 and should be avaailable on all system with Windows 7 and newer. M +3 -16 krita/main.cc M +20 -2 libs/ui/dialogs/kis_dlg_preferences.cc M +56 -1 libs/ui/opengl/KisOpenGLModeProber.cpp M +3 -1 libs/ui/opengl/KisOpenGLModeProber.h M +241 -115 libs/ui/opengl/kis_opengl.cpp M +19 -4 libs/ui/opengl/kis_opengl.h https://invent.kde.org/kde/krita/commit/b3484aa8d64b58f3505f373a0d122214d5973678
Git commit d927af0ca90b0a50e36e71c8245b99b45a604e0d by Dmitry Kazakov. Committed on 08/07/2019 at 13:01. Pushed by dkazakov into branch 'master'. Possibly fix a crash on systems with openGL 2.1 OpenGL 2.1 systems are supported, but Small Colro Selector is not available for them, because it doesn't have legacy shaders (needs to be implemented). M +4 -3 plugins/dockers/smallcolorselector/smallcolorselector.cc https://invent.kde.org/kde/krita/commit/d927af0ca90b0a50e36e71c8245b99b45a604e0d
Git commit a1bf3122fc9129e4a3dcb433da6c9760e4659e52 by Boudewijn Rempt, on behalf of Dmitry Kazakov. Committed on 08/07/2019 at 14:59. Pushed by rempt into branch 'krita/4.2'. Implement "Software Renderer" option for OpenGL engine On old GPUs that support D3D<=10.0 we cannot use Angle for emulating openGL, therefore we should use some software implementation (or try using D3D9 with its openGLES 2.0). This patch adds an option to select software rasterizer WARP, created by Microsoft, which is a part of DirectX 11 and should be avaailable on all system with Windows 7 and newer. M +3 -16 krita/main.cc M +20 -2 libs/ui/dialogs/kis_dlg_preferences.cc M +56 -1 libs/ui/opengl/KisOpenGLModeProber.cpp M +3 -1 libs/ui/opengl/KisOpenGLModeProber.h M +241 -115 libs/ui/opengl/kis_opengl.cpp M +19 -4 libs/ui/opengl/kis_opengl.h https://invent.kde.org/kde/krita/commit/a1bf3122fc9129e4a3dcb433da6c9760e4659e52
Git commit 8636ec57356eb31e6c38961c074a9b206c963a0f by Boudewijn Rempt, on behalf of Dmitry Kazakov. Committed on 08/07/2019 at 14:59. Pushed by rempt into branch 'krita/4.2'. Possibly fix a crash on systems with openGL 2.1 OpenGL 2.1 systems are supported, but Small Colro Selector is not available for them, because it doesn't have legacy shaders (needs to be implemented). M +4 -3 plugins/dockers/smallcolorselector/smallcolorselector.cc https://invent.kde.org/kde/krita/commit/8636ec57356eb31e6c38961c074a9b206c963a0f
*** Bug 409635 has been marked as a duplicate of this bug. ***
Git commit bf4e20d468f77d5a81f1a87227e326a5fc459168 by Dmitry Kazakov. Committed on 11/07/2019 at 14:56. Pushed by dkazakov into branch 'master'. Make Krita not request any specific renderer, when OpenGL is disabled Important note: now we don't have any specific option for openGL, we just write "none" into the renderer field. M +2 -2 libs/ui/KisPart.cpp M +6 -4 libs/ui/dialogs/kis_dlg_preferences.cc M +9 -13 libs/ui/kis_config.cc M +1 -1 libs/ui/kis_config.h M +46 -38 libs/ui/opengl/kis_opengl.cpp M +1 -1 libs/ui/opengl/kis_opengl_canvas2.cpp M +1 -1 libs/ui/tests/kis_derived_resources_test.cpp https://invent.kde.org/kde/krita/commit/bf4e20d468f77d5a81f1a87227e326a5fc459168
According to the reporter, the bug is now fixed in master! https://www.reddit.com/r/krita/comments/c62xlp/krita_422_released/etj4rya/
Git commit d30203fa01a6cb4d6533cb8787012293b70ec92b by Boudewijn Rempt, on behalf of Dmitry Kazakov. Committed on 12/07/2019 at 08:02. Pushed by rempt into branch 'krita/4.2'. Make Krita not request any specific renderer, when OpenGL is disabled Important note: now we don't have any specific option for openGL, we just write "none" into the renderer field. M +2 -2 libs/ui/KisPart.cpp M +6 -4 libs/ui/dialogs/kis_dlg_preferences.cc M +9 -13 libs/ui/kis_config.cc M +1 -1 libs/ui/kis_config.h M +46 -38 libs/ui/opengl/kis_opengl.cpp M +1 -1 libs/ui/opengl/kis_opengl_canvas2.cpp M +1 -1 libs/ui/tests/kis_derived_resources_test.cpp https://invent.kde.org/kde/krita/commit/d30203fa01a6cb4d6533cb8787012293b70ec92b
*** Bug 409755 has been marked as a duplicate of this bug. ***