Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Determine what GPU is running through WMI

I am trying to write a python script for to figure out which GPU (dedicated or integrated) is currently running. I have managed to make it work so far by running dxdiag and parsing the output for the mode of each gpu device, but this is taking way too long. Does anyone know how dxdiag gets this information? Is there a way to get the info through Windows management Instrument? Any help is appreciated.

Thanks

like image 954
draB1 Avatar asked Sep 18 '25 13:09

draB1


1 Answers

DXDiag most probably picks up data from WMI tables. I need to confirm it though.

wmic PATH Win32_VideoController GET Adapterram

will provide you the information that you are looking for. If you want more information just run below mentioned command.

wmic PATH Win32_VideoController

And if you want GPU name

wmic PATH Win32_VideoController GET Name

Updated

Adding an example for better understanding. You can map between below mentioned tables with deviceid and get the information.

instance of Win32_VideoController
{
    AdapterCompatibility = "Intel Corporation";
    AdapterDACType = "Internal";
    AdapterRAM = 1073741824;
    Availability = 3;
    Caption = "Intel(R) HD Graphics 4600";
    ConfigManagerErrorCode = 0;
    ConfigManagerUserConfig = FALSE;
    CreationClassName = "Win32_VideoController";
    CurrentBitsPerPixel = 32;
    CurrentHorizontalResolution = 1920;
    CurrentNumberOfColors = "4294967296";
    CurrentNumberOfColumns = 0;
    CurrentNumberOfRows = 0;
    CurrentRefreshRate = 59;
    CurrentScanMode = 4;
    CurrentVerticalResolution = 1080;
    Description = "Intel(R) HD Graphics 4600";
    DeviceID = "VideoController1";
    DitherType = 0;
    DriverDate = "20150911000000.000000-000";
    DriverVersion = "20.19.15.4285";
    InfFilename = "oem79.inf";
    InfSection = "iHSWD_w10";
    InstalledDisplayDrivers = "igdumdim64.dll,igd10iumd64.dll,igd10iumd64.dll,igd12umd64.dll,igdumdim32,igd10iumd32,igd10iumd32,igd12umd32";
    MaxRefreshRate = 75;
    MinRefreshRate = 50;
    Monochrome = FALSE;
    Name = "Intel(R) HD Graphics 4600";
    PNPDeviceID = "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06\\3&11583659&0&10";
    Status = "OK";
    SystemCreationClassName = "Win32_ComputerSystem";
    SystemName = "---------";
    VideoArchitecture = 5;
    VideoMemoryType = 2;
    VideoModeDescription = "1920 x 1080 x 4294967296 colors";
    VideoProcessor = "Intel(R) HD Graphics Family";
};




instance of Win32_PnPEntity
{
    Caption = "Intel(R) HD Graphics 4600";
    ClassGuid = "{4d36e968-e325-11ce-bfc1-08002be10318}";
    CompatibleID = {"PCI\\VEN_8086&DEV_0412&REV_06", "PCI\\VEN_8086&DEV_0412", "PCI\\VEN_8086&CC_030000", "PCI\\VEN_8086&CC_0300", "PCI\\VEN_8086", "PCI\\CC_030000", "PCI\\CC_0300"};
    ConfigManagerErrorCode = 0;
    ConfigManagerUserConfig = FALSE;
    CreationClassName = "Win32_PnPEntity";
    Description = "Intel(R) HD Graphics 4600";
    DeviceID = "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06\\3&11583659&0&10";
    HardwareID = {"PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06", "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C", "PCI\\VEN_8086&DEV_0412&CC_030000", "PCI\\VEN_8086&DEV_0412&CC_0300"};
    Manufacturer = "Intel Corporation";
    Name = "Intel(R) HD Graphics 4600";
    PNPClass = "Display";
    PNPDeviceID = "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06\\3&11583659&0&10";
    Present = TRUE;
    Service = "igfx";
    Status = "OK";
    SystemCreationClassName = "Win32_ComputerSystem";
    SystemName = "-------";
};
like image 165
Amit Shakya Avatar answered Sep 21 '25 05:09

Amit Shakya