Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
5.6, 5.7, 5.8
-
None
Description
When user have machine with two video cards: integrated Intel and AMD Radeon(I have tested on AMD Radeon R7 M265). Qt internal class GpuDescription return properties of integrated video card even if user manually select AMD Radeon for Qt application. The interesting thing is that OpenGL property of context "GL_RENDERER" return correct video card in both cases(manually set to use integrated or amd ). Example of getting "GL_RENDERER".
I`m not sure if it is the problem of amd vendor of laggy directx function GetAdapterIdentifier. I want to note that GetAdapterIdentifier work fine for Nvidia video cards when they with integrated Intel.
This bug have influences on user when qt dynamically load drivers. If user intel video card is in black list(see features: "disable_desktopgl" in attached default.json) qt will use ANGLE driver(d3dcompiler_47.dll). Angle driver has opengl support 2.0. In this case qt will use ANGLE even if user has video card with much higher opengl support. If I disable this file(set QT_OPENGL_BUGLIST) my opengl context is using AMD video card. To debug you could set QT_LOGGING_RULES to qt.qpa.gl=true.
I seems to me like a bug. Should this case be fixed? I think we could could check render string GL_RENDERER before using ANGLE. Match this string with adapters description list(see EnumAdapters). If they match and continent "AMD" we should take deviceID from the item in list. Then with this deviceID we could do our checks.
Thanks!
Attachments
Issue Links
- relates to
-
QTBUG-50371 Windows: OpenGL crash on start on Intel + AMD GPU (Multi-adapter) systems
- Closed