AMD GPU Services (AGS)
|
The device info struct used to describe a physical GPU enumerated by AGS. More...
#include <amd_ags.h>
Public Types | |
enum | AsicFamily { AsicFamily_Unknown, AsicFamily_PreGCN, AsicFamily_GCN1, AsicFamily_GCN2, AsicFamily_GCN3, AsicFamily_GCN4, AsicFamily_Vega, AsicFamily_RDNA, AsicFamily_RDNA2, AsicFamily_RDNA3, AsicFamily_Count } |
The ASIC family. More... | |
typedef enum AGSDeviceInfo::AsicFamily | AsicFamily |
The ASIC family. | |
Public Attributes | |
const char * | adapterString |
The adapter name string. | |
AsicFamily | asicFamily |
Set to Unknown if not AMD hardware. | |
unsigned int | isAPU: 1 |
Whether this device is an APU. | |
unsigned int | isPrimaryDevice: 1 |
Whether this device is marked as the primary device. | |
unsigned int | isExternal:1 |
Whether this device is a detachable, external device. | |
unsigned int | reservedPadding: 29 |
Reserved for future use. | |
int | vendorId |
The vendor id. | |
int | deviceId |
The device id. | |
int | revisionId |
The revision id. | |
int | numCUs |
Number of compute units. | |
int | numWGPs |
Number of RDNA Work Group Processors. Only valid if ASIC is RDNA onwards. | |
int | numROPs |
Number of ROPs. | |
int | coreClock |
Core clock speed at 100% power in MHz. | |
int | memoryClock |
Memory clock speed at 100% power in MHz. | |
int | memoryBandwidth |
Memory bandwidth in MB/s. | |
float | teraFlops |
Teraflops of GPU. Zero if not GCN onwards. Calculated from iCoreClock * iNumCUs * 64 Pixels/clk * 2 instructions/MAD. | |
unsigned long long | localMemoryInBytes |
The size of local memory in bytes. 0 for non AMD hardware. | |
unsigned long long | sharedMemoryInBytes |
The size of system memory available to the GPU in bytes. More... | |
int | numDisplays |
The number of active displays found to be attached to this adapter. | |
AGSDisplayInfo * | displays |
List of displays allocated by AGS to be numDisplays in length. | |
int | eyefinityEnabled |
Indicates if Eyefinity is active. | |
int | eyefinityGridWidth |
Contains width of the multi-monitor grid that makes up the Eyefinity Single Large Surface. | |
int | eyefinityGridHeight |
Contains height of the multi-monitor grid that makes up the Eyefinity Single Large Surface. | |
int | eyefinityResolutionX |
Contains width in pixels of the multi-monitor Single Large Surface. | |
int | eyefinityResolutionY |
Contains height in pixels of the multi-monitor Single Large Surface. | |
int | eyefinityBezelCompensated |
Indicates if bezel compensation is used for the current SLS display area. 1 if enabled, and 0 if disabled. | |
int | adlAdapterIndex |
Internally used index into the ADL list of adapters. | |
int | reserved |
reserved field | |
The device info struct used to describe a physical GPU enumerated by AGS.
The ASIC family.
Enumerator | |
---|---|
AsicFamily_Unknown | Unknown architecture, potentially from another IHV. Check AGSDeviceInfo::vendorId. |
AsicFamily_PreGCN | Pre GCN architecture. |
AsicFamily_GCN1 | AMD GCN 1 architecture: Oland, Cape Verde, Pitcairn & Tahiti. |
AsicFamily_GCN2 | AMD GCN 2 architecture: Hawaii & Bonaire. This also includes APUs Kaveri and Carrizo. |
AsicFamily_GCN3 | AMD GCN 3 architecture: Tonga & Fiji. |
AsicFamily_GCN4 | AMD GCN 4 architecture: Polaris. |
AsicFamily_Vega | AMD Vega architecture, including Raven Ridge (ie AMD Ryzen CPU + AMD Vega GPU). |
AsicFamily_RDNA | AMD RDNA architecture. |
AsicFamily_RDNA2 | AMD RDNA2 architecture. |
AsicFamily_RDNA3 | AMD RDNA3 architecture. |
AsicFamily_Count | Number of enumerated ASIC families. |
unsigned long long AGSDeviceInfo::sharedMemoryInBytes |
The size of system memory available to the GPU in bytes.
It is important to factor this into your VRAM budget for APUs as the reported local memory will only be a small fraction of the total memory available to the GPU.