I am writing a pure-compute app using DirectCompute. The application is not doing any graphics. The app is running on a "dual-graphics" enabled notebook (A10-5750 + 8750M). They are unfortunately exposed as a single DXGI adapter so it is difficult to know which GPU is actually being used. I wanted to know, is there a programmatic (or even manual) way to know which graphics processor the compute shader is running on in a dual-graphics scenario? Catalyst has an option to enable or disable dual-graphics but the UI is not clear enough to state with confidence which GPU is being selected for pure compute shader jobs.
I think I now understand how this works. You can click on "Configure switchable graphics" from the CCC tray icon and then explicitly assign either "Power-saving graphics" (which I assume is integrated graphics) or "High performance graphics" (which I assume is discrete graphics) to your application exe. Changing this assignment causes different performance for my application as expected. It is disappointing that I cannot use both the cards. Under OpenCL, both are exposed as separate devices and I can use both. On Nvidia based systems, I can use both the Intel HD graphics and Nvidia graphics as separate adapters for DirectCompute.