<div dir="ltr"><div>Okay I have learned that dynamic OpenGL means that at runtime Qt will determine which OpenGL implementation to use.</div><div><br></div><div>If OpenGL >= 2.0 is not available it will try ANGLE and if ANGLE is not available it will use a software renderer[0].</div><div><br></div><div>These three files are required for ANGLE to work.<br></div><div><br></div><div>
<li>libEGL.dll</li>
<li>libGLESv2.dll</li>
<li>d3dcompiler_XX.dll</li>

</div><div><br></div><div>
libEGL.dll

and 
libGLESv2.dll are already being included in the wheels.<br></div><div><br></div><div>Without allowing Qt to fallback to the software renderer (opengl32sw.dll) I tried adding the d3dcompiler_47.dll from my Qt 5.10.1 msvc2015 directory but the application would not work.</div><div><br></div><div>Failed to load libEGL (The specified module could not be found.)</div><div>QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions<br></div><div><br></div><div>Hey Phil, which msvc directory do you copy the .dlls from when building the wheels?</div><div>I think the error is because the computer I am testing doesn't 
have accelerated graphics capabilities

which the article mentions will cause the software renderer to be used.<br></div><div><br></div><div>0: <a href="https://blog.qt.io/blog/2014/11/27/qt-weekly-21-dynamic-opengl-implementation-loading-in-qt-5-4/">https://blog.qt.io/blog/2014/11/27/qt-weekly-21-dynamic-opengl-implementation-loading-in-qt-5-4/</a><br></div><div><br> </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 5, 2018 at 2:12 PM, Cody Scott <span dir="ltr"><<a href="mailto:cody@perspexis.com" target="_blank">cody@perspexis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I'm running a simple PyQt5 QML application[0] on a test Windows 7 32-bit VM with only Python 3.6.5 and PyQt5==5.10.1 installed but I'm getting an error about missing DLLs.</div><div><br></div><div>The full output is attached but the main part is <br></div><div><br></div><div>QWindowsEGLStaticContext::<wbr>create: Could not initialize EGL display: error 0x3001<br>QWindowsEGLStaticContext::<wbr>create: When using ANGLE, check if d3dcompiler_4x.dll is available<br>Failed to load opengl32sw.dll (The specified module could not be found.)<br>Failed to load and resolve WGL/OpenGL functions</div><div><br></div><div><br></div><div>When I build PyQt5 from source and add the Qt bin directory to my PATH there are two additional files that are available.</div><div><br></div><div>d3dcompiler_47.dll and opengl32sw.dll</div><div><br></div><div>If they are not available the application fails with the same message I get when PyQt5 was installed from PyPI using the wheel.<br></div><div><br></div><div>Should these two files be included in the PyQt5 wheels for Windows?</div><div><br></div><div>In the Qt Windows deployment docs[1] these two files are included in the table of required files when using
"dynamic OpenGL".</div><div><br></div><div>
- d3dcompiler_XX.dll is the DirectX shader compiler[2], "where XX is the version number that ANGLE (libGLESv2) was linked against."</div><div>- opengl32sw.dll is for software rendering<br></div><div><br></div><div>0: <a href="https://github.com/siecje/qml-testing" target="_blank">https://github.com/siecje/qml-<wbr>testing</a><br></div><div>1: <a href="http://doc.qt.io/qt-5/windows-deployment.html#creating-the-application-package" target="_blank">http://doc.qt.io/qt-5/windows-<wbr>deployment.html#creating-the-<wbr>application-package</a></div><div>2: <a href="https://github.com/Microsoft/DirectXShaderCompiler" target="_blank">https://github.com/Microsoft/<wbr>DirectXShaderCompiler</a><br></div></div>
</blockquote></div><br></div>