Hi,
So I’m trying to get the name of the video card currently being used to render my game.
I’ve tried using the default engine function:
return FWindowsPlatformMisc::GetPrimaryGPUBrand();
But that keeps returning the 1st video card in my system. If I change the video card (on a laptop), it keeps showing the 1st video card.
I’ve also tried using this function and ran into the same problem:
FString VideoCardName = "Unknown";
DISPLAY_DEVICE DisplayDevice;
DisplayDevice.cb = sizeof(DisplayDevice);
if (EnumDisplayDevices(nullptr, 0, &DisplayDevice, 0))
{
VideoCardName = DisplayDevice.DeviceString;
}
return VideoCardName;
Any help would be appreciated, thanks. 
Maybe read that function name again:
Get Primary GPUBrand
And let me be crystal: You can turn blue in the face, but unless you manually change the actual hardware the primary is the primary and nothing you can do (short of driver hacks) will change that…
So maybe there is a different function to loop through all the GPUs?
Hell, try jusg
If the exe is open it should work and list whatever the GPU in use is (probably wont work, but woth a shot instead of looping hardware).
1 Like
I’m sorry, I don’t quite understand the second part of what you wrote. 
I get that it will always return the primary video card unless you physically swap them.
What is jusg?
What does the GetCPUBrand function have to do with this?
A completely misspelled Just Use and a bad link as it should have been GPU brand.
Try using the info from here
Under the auspicious expectation that the driver in use actually knows what GFX is being used…
It should even work on VMs this way, which is probably a good thing…
1 Like
I think that I’m going something wrong.
I’ve included #include "GenericPlatform/GenericPlatformDriver.h"
in the hader of my function library but I’m unable to declare function that returns the FGPUDriverInfo
struct to get any of the information. I think that the struct is in a different namespace.
I managed to get this working, but it returns “unknown”. 
FString test;
FPlatformMisc::GetGPUDriverInfo(test);
return test;
Am I doing something wrong?
Not sure.
Add a breakpoint to the execution where the data is pulled and analize what data is actually pulled (if any).
Like i said, what is returned depneds on the drivers too…
Maybe a breakpoint before in order to f11 into the actual function that does the job is abetter idea.
But you need to be sure that function is accessible by the debugging by setting the rifht debug options, if it VS just skips over it…