-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blacklist intel drivers for OpenGl #2776
Comments
We can use QT_OPENGL_BUGLIST: http://doc.qt.io/qt-5/windows-requirements.html |
FYI: vasil.petrov.tv@gmail.com has one of these laptops with the intel board which doesn't work |
@NaterGator Do you think you can set this up in the installer? The guy above has an example case you can test against. |
@DonLakeFlyer it will be a little bit grosser than that. We likely shouldn't muck with the user's system wide environment variables. On Windows I'd advocate we check that QT_OPENGL_BUGLIST is set at launch, and if not respawn via QProcess w/ our custom buglist provided. I'll see if I can get the info necessary from that user to extend the buglist. |
Hmm. Any way to detect the bad drivers ourselves and do the switch internally? I think you can tell the QmlEngine what rendering to use. |
Doing anything ourselves would be more of a hack than using the existing Qt code. The other option is to give users the ability to enforce a particular renderer in the QGC settings page. We can give them Native, Compatibility (ANGLE), or Software rendering. That setting is applied when QApplication is started. I'll trace through QtBase and find out when the QT_OPENGL_BUGLIST variable is checked. There's a chance we can set it before it is checked by Qt in which case we won't have to respawn ourselves. |
Year and a half ago There was a version of QGC that stopped working on my Lenovo with nVidia Quadro NVS 140M, despite it is pretty capable VGA. Then I moved to the laptop I'm currently using for GCS. So when the Intel problems started on my current machine I tried again the nVidia Quadro NVS 140M and it works there perfect. So with the progress of Qt strange things happen. Making more complex software brings more problems. Keep it simple and just give 3 icons for the 3 different modes. If the default does not work, users will use the QGC Compatibility and QGC Software Render... you place the icons in the QGC program folder and describe it in the Users manual. Plain and simple. We are probably 1-10% cases that have video problems and this cases are not limited to Intel video. This 3 icons will start QGC with different arguments. |
QGC crashes out before you get there.
This is an interesting idea and simpler to implement. Still would be nice to have a runtime check right in main before Qt craps out that will point the user in the right direction. |
Another dirty option is to supply a windowless launcher process that acts I'm going to get a first pass done today. On Sat, Feb 13, 2016, 11:09 AM Don Gagne notifications@github.com wrote:
|
QGC only crashes out once it starts rendering Qml. So various checks can go in main before any Qml engine is started. Then I think the appropriate renderer can be set for the Qml engine. So you don't need the launcher. |
BTW on both notebooks and on both occasions I did not have crash but rather hanging. |
I'm not surprised. The issue is not Qt getting more complicated but Intel's history of very poor OpenGL implementations on Windows. They have recently improved quite a bit and their drivers are getting less quirky, but in the past they were a mess and badly broken. |
@tubeme can you verify if this installer fixes the issue? If not we may need to block GLES too and fall to pure d3d11 rendering, and failing that fall all the way back to software rasterization. https://ci.appveyor.com/api/buildjobs/mk5f8w8c1xjqw2jc/artifacts/qgroundcontrol-installer.exe |
@NaterGator No it is not working.... Had to manually set again "angle" to see it working. |
@tubeme can you set the environment variable QT_LOGGING_RULES=qt.qpa.gl=true and run again? The log window for QGroundControl should have a bunch of entries for qwindowsopengltester.cpp I'd like to see. |
Actually scratch that, I made a silly mistake. Never code groggy! See if this one works for you: |
@NaterGator This latest one does not work either..Here is the latest version output: [I] at :0 - "Logging ini file directory "C:/Users/Vasko/AppData/Local/QtProject"" it stops after this line never opens the QGC window and then with the argument QT_LOGGING_RULES argument you gave me: [I] at :0 - "Logging ini file directory "C:/Users/Vasko/AppData/Local/QtProject"" it stops after this line never opens the QGC window |
Here is with the ANGLE and QT_LOGGING var set. QGC starts normal: [I] at :0 - "Logging ini file directory "C:/Users/Vasko/AppData/Local/QtProject"" |
@tubeme thank you very much for the logging output, something really really weird is going on. Your computer is loading ATI Catalyst drivers "aticfx32.dll" on an Intel GMA system. I imagine this is something related to discrete + integrated GPUs. No matter, I think the better course is to unconditionally switch Intel GMA adapters to ANGLE regardless of driver version. This version should not check the driver version: |
@tubeme Could you give this another try? |
@NaterGator @LorenzMeier I might be the reason for this mess. Originaly my laptop has 2 GPUs Intel one and ATI Mobile Radeon HD 4670 which broke so i had spare ATI Mobile Radeon HD 5470 and installed it. Probably the 5470 I had is not properly set for Dual GPU work. And it messed all the drivers in the Win10. I fit in this weird 1% of crazy cases that it is hard to create in the lab on purpouse. :) I will try the latest version. |
@tubeme weird case or not, I personally have experience with the terrible state of Intel's OpenGL support in the GMA series of graphics adapters. They should be blacklisted. |
@NaterGator So the first time I ran it it did not work with the following log: [I] at :0 - "Logging ini file directory "C:/Users/Vasko/AppData/Local/QtProject"" For the second time I deleted all instances of the ATI drivers. and then ran it again with SUCCESS: [I] at :0 - "Logging ini file directory "C:/Users/Vasko/AppData/Local/QtProject"" |
Interesting. The both times it selected ANGLE and the second time it still loaded ATI drivers:
Either way we should have all 4th gen Intel GMA adapters defaulting to the ANGLE based renderer. |
I'm pretty sure it is Win10 issue... I don't see any difference between both settings the standard and angle one in terms of view and performance... So just turn it on for all Intel GMA adapters. Don't even know what will be the difference in the performance. We have no 3D view... |
@NaterGator defaulting to angle or sw rendering only on windows, right? |
@lucasdemarchi we're operating as described here with the caveat that we automatically use angle for Intel GMA and 4th generation GPUs. I believe you had issues on a device equipped with a GMA adapter; if so use this installer to test: |
FYI: I've updated the wiki to be more specific on Windows laptops with Intel integrated graphics drivers. |
Feels good to close this one! |
Need to figure out how to blacklist the intel drivers to use Angle instead of OpenGl.
The text was updated successfully, but these errors were encountered: