[Interest] Qt do not detect AMD Radeon on Windows
YuriyPryyma
priymayuriy at gmail.com
Fri Aug 5 17:04:51 CEST 2016
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
<https://code.woboq.org/qt5/qtbase/src/plugins/platforms/windows/qwindowsopengltester.cpp.html#_ZN14GpuDescription6detectEv>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"
<https://code.woboq.org/qt5/qttools/src/qtdiag/qtdiag.cpp.html#162>.
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
<https://code.woboq.org/qt5/qtbase/src/plugins/platforms/windows/qwindowsopengltester.cpp.html#230>.
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
<https://msdn.microsoft.com/en-us/library/windows/desktop/bb174538%28v=vs.85%29.aspx>).
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!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160805/dbc0b6ba/attachment.html>
-------------- next part --------------
{
"name": "Qt built-in GPU driver blacklist",
"version": "5.6",
"entries": [
{
"id": 1,
"description": "Desktop OpenGL is unreliable on some Intel HD laptops (QTBUG-43263)",
"vendor_id": "0x8086",
"device_id": [ "0x0A16" ],
"os": {
"type": "win"
},
"driver_version": {
"op": "<=",
"value": "10.18.10.3277"
},
"features": [
"disable_desktopgl"
]
},
{
"id": 2,
"description": "Intel Q965/Q963 - GMA 3000 has insufficient support of opengl and directx",
"vendor_id": "0x8086",
"device_id": [ "0x2992" ],
"os": {
"type": "win"
},
"features": [
"disable_desktopgl",
"disable_angle"
]
},
{
"id": 3,
"description": "No OpenGL on Intel G33/G31 (QTBUG-47522)",
"vendor_id": "0x8086",
"device_id": [ "0x29C2" ],
"os": {
"type": "win"
},
"features": [
"disable_desktopgl"
]
},
{
"id": 4,
"description": "Intel HD Graphics 3000 crashes when initializing the OpenGL driver (QTBUG-42240)",
"vendor_id": "0x8086",
"device_id": [ "0x0102", "0x0106", "0x010A", "0x0112", "0x0116", "0x0122", "0x0126" ],
"os": {
"type": "win"
},
"features": [
"disable_desktopgl"
]
},
{
"id": 5,
"description": "Intel GMA 3150 (QTBUG-43243), Mobile Intel 945GM (QTBUG-47435) crash",
"vendor_id": "0x8086",
"device_id": [ "0xA001", "0xA011", "0x27A0" ],
"os": {
"type": "win"
},
"features": [
"disable_desktopgl", "disable_angle"
]
},
{
"id": 6,
"description": "Intel(R) HD Graphics 4000 / 5500 cause crashes on orientation changes in fullscreen mode (QTBUG-49541)",
"vendor_id": "0x8086",
"device_id": [ "0x0166", "0x1616" ],
"os": {
"type": "win"
},
"features": [
"disable_rotation"
]
}
]
}
More information about the Interest
mailing list