Selecting the actual GPU

Started by
10 comments, last by NightCreature83 7 years, 10 months ago

As of Windows 8.1, hybrid GPU configurations are officially supported by the OS, so this whitepaper is somewhat out-of-date. For D3D9, you are correct that your only choice is one or the other, and that the decision is made outside of the control of your application, but for DXGI (i.e. D3D11 or D3D12) there is no adapter hiding. The only thing that those exports will do is change the default enumeration order of the GPUs. Which, if you're enumerating explicitly, doesn't matter too much.

I'm going to take this to mean that DXGI does the right thing in various hybrid GPU configurations, as long as you are running Win 8.1 or beyond. If someone has up to date info and I'm wrong, please correct me, but the last time I dealt with this DXGI does not do the right thing in D3D11 under Win 7. In an Optimus setup, it would report the Intel adapter with displays correctly, and then report a second adapter with zero displays and nearly no adapter information. Unless I did extern the variable as outlined in the whitepaper, and then I got the enumerations I expected. Has that behavior changed?

I guess my point is, unless someone has more current info that my experience is no longer what happens, you might want to still handle the case for D3D11 users not running Win8.1+?

Advertisement

This is the info I get from DXGI on Windows 10


[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(105) : 0
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(110) : vendor id: 8086
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(111) : device id: 416
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(112) : subsytem id: 11021462
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(113) : revision: 6
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(114) : Dedicated VRAM: 112 MiB
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(115) : Dedicated RAM: 0 MiB
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(116) : Shared RAM: 8150 MiB
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(119) : description: Intel(R) HD Graphics 4600
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(105) : 1
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(110) : vendor id: 10de
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(111) : device id: 13d8
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(112) : subsytem id: 11021462
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(113) : revision: 161
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(114) : Dedicated VRAM: 2991 MiB
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(115) : Dedicated RAM: 0 MiB
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(116) : Shared RAM: 8150 MiB
[RENDER SYSTEM ADAPTER INFO:] : ..\..\Graphics\RenderSystem.cpp(119) : description: NVIDIA GeForce GTX 970M

If you set the preffered adapter to be NVidia in the control panel of the driver than DXGI will report that adapter first.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

This topic is closed to new replies.

Advertisement