5050static const gtString s_DEVICE_ENV_VAR = L" CodeXLGPUProfilerDevice" ;
5151static const gtString s_HW_FAMILY_ENV_VAR = L" CodeXLGPUProfilerHardwareFamily" ;
5252
53- const QString CounterManager::ms_SI_FAMILY_ENV_VAR_VALUE = " SouthernIslands" ;
54- const QString CounterManager::ms_CI_FAMILY_ENV_VAR_VALUE = " SeaIslands" ;
55- const QString CounterManager::ms_VI_FAMILY_ENV_VAR_VALUE = " VolcanicIslands" ;
53+ const QString CounterManager::ms_GFX6_FAMILY_ENV_VAR_VALUE = " GFX6" ;
54+ const QString CounterManager::ms_GFX7_FAMILY_ENV_VAR_VALUE = " GFX7" ;
55+ const QString CounterManager::ms_GFX8_FAMILY_ENV_VAR_VALUE = " GFX8" ;
56+ const QString CounterManager::ms_GFX9_FAMILY_ENV_VAR_VALUE = " GFX9" ;
5657
57- const int CounterManager::ms_SI_PLACEHOLDER_DEVICE_ID = 0x6798 ; // a Tahiti device
58- const int CounterManager::ms_CI_PLACEHOLDER_DEVICE_ID = 0x6650 ; // a Bonaire device
59- const int CounterManager::ms_VI_PLACEHOLDER_DEVICE_ID = 0x6900 ; // an Iceland device
58+ const int CounterManager::ms_GFX6_PLACEHOLDER_DEVICE_ID = 0x6798 ; // a Tahiti device
59+ const int CounterManager::ms_GFX7_PLACEHOLDER_DEVICE_ID = 0x6650 ; // a Bonaire device
60+ const int CounterManager::ms_GFX8_PLACEHOLDER_DEVICE_ID = 0x6900 ; // an Iceland device
61+ const int CounterManager::ms_GFX9_PLACEHOLDER_DEVICE_ID = 0x6860 ; // a Vega device
6062
6163const int CounterManager::ms_UNSPECIFIED_REV_ID = 0 ;
6264
@@ -124,7 +126,7 @@ void CounterManager::FreeResources(bool isReleaseModulesRequired)
124126// Configure the object's state to the current context (remote or local session).
125127void CounterManager::Init (bool isRemoteSession)
126128{
127- const char * ALL_AVAILABLE_DEVICES_ENV_VAR_VAL = " SouthernIslands;SeaIslands;VolcanicIslands " ;
129+ const char * ALL_AVAILABLE_DEVICES_ENV_VAR_VAL = " GFX6;GFX7;GFX8;GFX9 " ;
128130 gtString envVarValue;
129131 QString counterEnvVar = " " ;
130132
@@ -155,9 +157,10 @@ void CounterManager::Init(bool isRemoteSession)
155157 // available counters are set per the installed hardware, but can be overridden by
156158 // setting the CodeXLGPUProfilerHardwareFamily environment variable to (multiple
157159 // values can be specified using a semi-colon separated list):
158- // "SouthernIslands" --> southernIslandsHardwareFamily
159- // "SeaIslands" --> seaIslandsHardwareFamily
160- // "VolcanicIslands" --> volcanicIslandsHardwareFamily
160+ // "GFX6" --> gfx6HardwareFamily
161+ // "GFX7" --> gfx7HardwareFamily
162+ // "GFX8" --> gfx8HardwareFamily
163+ // "GFX9" --> gfx9HardwareFamily
161164 if (counterEnvVar.isEmpty ())
162165 {
163166 if (osGetCurrentProcessEnvVariableValue (s_HW_FAMILY_ENV_VAR, envVarValue))
@@ -167,17 +170,21 @@ void CounterManager::Init(bool isRemoteSession)
167170
168171 foreach (QString supportedFamily, supportedFamilies)
169172 {
170- if (supportedFamily == ms_VI_FAMILY_ENV_VAR_VALUE )
173+ if (supportedFamily == ms_GFX9_FAMILY_ENV_VAR_VALUE )
171174 {
172- AddDeviceIdToFamily (VOLCANIC_ISLANDS_FAMILY, ms_VI_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
175+ AddDeviceIdToFamily (GFX9_FAMILY, ms_GFX9_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
173176 }
174- else if (supportedFamily == ms_SI_FAMILY_ENV_VAR_VALUE )
177+ if (supportedFamily == ms_GFX8_FAMILY_ENV_VAR_VALUE )
175178 {
176- AddDeviceIdToFamily (SOUTHERN_ISLANDS_FAMILY, ms_SI_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
179+ AddDeviceIdToFamily (GFX8_FAMILY, ms_GFX8_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
177180 }
178- else if (supportedFamily == ms_CI_FAMILY_ENV_VAR_VALUE )
181+ else if (supportedFamily == ms_GFX7_FAMILY_ENV_VAR_VALUE )
179182 {
180- AddDeviceIdToFamily (SEA_ISLANDS_FAMILY, ms_CI_PLACEHOLDER_DEVICE_ID, ms_UNSPECIFIED_REV_ID);
183+ AddDeviceIdToFamily (GFX7_FAMILY, ms_GFX7_PLACEHOLDER_DEVICE_ID, ms_UNSPECIFIED_REV_ID);
184+ }
185+ else if (supportedFamily == ms_GFX6_FAMILY_ENV_VAR_VALUE)
186+ {
187+ AddDeviceIdToFamily (GFX6_FAMILY, ms_GFX6_PLACEHOLDER_DEVICE_ID, ms_UNSPECIFIED_REV_ID);
181188 }
182189 }
183190 }
@@ -248,22 +255,28 @@ void CounterManager::Init(bool isRemoteSession)
248255 m_isDummyDevicesAdded = true ;
249256
250257 // if hardware device is not recognized, then enable all hardware families, and add one device from each family
251- if (!m_availableDevices.contains (SOUTHERN_ISLANDS_FAMILY))
258+ if (!m_availableDevices.contains (GFX6_FAMILY))
259+ {
260+ AddDeviceIdToFamily (GFX6_FAMILY, ms_GFX6_PLACEHOLDER_DEVICE_ID, ms_UNSPECIFIED_REV_ID);
261+ m_dummyDeviceAdded.append (GFX6_FAMILY);
262+ }
263+
264+ if (!m_availableDevices.contains (GFX7_FAMILY))
252265 {
253- AddDeviceIdToFamily (SOUTHERN_ISLANDS_FAMILY, ms_SI_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
254- m_dummyDeviceAdded.append (SOUTHERN_ISLANDS_FAMILY );
266+ AddDeviceIdToFamily (GFX7_FAMILY, ms_GFX7_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
267+ m_dummyDeviceAdded.append (GFX7_FAMILY );
255268 }
256269
257- if (!m_availableDevices.contains (SEA_ISLANDS_FAMILY ))
270+ if (!m_availableDevices.contains (GFX8_FAMILY ))
258271 {
259- AddDeviceIdToFamily (SEA_ISLANDS_FAMILY, ms_CI_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
260- m_dummyDeviceAdded.append (SEA_ISLANDS_FAMILY );
272+ AddDeviceIdToFamily (GFX8_FAMILY, ms_GFX8_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
273+ m_dummyDeviceAdded.append (GFX8_FAMILY );
261274 }
262275
263- if (!m_availableDevices.contains (VOLCANIC_ISLANDS_FAMILY ))
276+ if (!m_availableDevices.contains (GFX9_FAMILY ))
264277 {
265- AddDeviceIdToFamily (VOLCANIC_ISLANDS_FAMILY, ms_VI_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
266- m_dummyDeviceAdded.append (VOLCANIC_ISLANDS_FAMILY );
278+ AddDeviceIdToFamily (GFX9_FAMILY, ms_GFX9_PLACEHOLDER_DEVICE_ID , ms_UNSPECIFIED_REV_ID);
279+ m_dummyDeviceAdded.append (GFX9_FAMILY );
267280 }
268281 }
269282
@@ -355,15 +368,19 @@ void CounterManager::AddDeviceId(int deviceId, int revId)
355368 switch (gfxCardInfo.m_generation )
356369 {
357370 case GDT_HW_GENERATION_SOUTHERNISLAND:
358- AddDeviceIdToFamily (SOUTHERN_ISLANDS_FAMILY , deviceId, revId);
371+ AddDeviceIdToFamily (GFX6_FAMILY , deviceId, revId);
359372 break ;
360373
361374 case GDT_HW_GENERATION_SEAISLAND:
362- AddDeviceIdToFamily (SEA_ISLANDS_FAMILY , deviceId, revId);
375+ AddDeviceIdToFamily (GFX7_FAMILY , deviceId, revId);
363376 break ;
364377
365378 case GDT_HW_GENERATION_VOLCANICISLAND:
366- AddDeviceIdToFamily (VOLCANIC_ISLANDS_FAMILY, deviceId, revId);
379+ AddDeviceIdToFamily (GFX8_FAMILY, deviceId, revId);
380+ break ;
381+
382+ case GDT_HW_GENERATION_GFX9:
383+ AddDeviceIdToFamily (GFX9_FAMILY, deviceId, revId);
367384 break ;
368385
369386 default :
@@ -694,39 +711,51 @@ void CounterManager::SetupCounterData()
694711 GPA_ICounterAccessor* pCounterAccessor;
695712 GPA_ICounterScheduler* pCounterScheduler;
696713
697- if (m_availableDevices.contains (VOLCANIC_ISLANDS_FAMILY ) && m_availableDevices[VOLCANIC_ISLANDS_FAMILY ].count () > 0 )
714+ if (m_availableDevices.contains (GFX9_FAMILY ) && m_availableDevices[GFX9_FAMILY ].count () > 0 )
698715 {
699- if (m_gpa_GetAvailableCountersFuncPtr (GPA_API_OPENCL, ms_AMD_VENDOR_ID, m_availableDevices[VOLCANIC_ISLANDS_FAMILY ][0 ].m_deviceID , m_availableDevices[VOLCANIC_ISLANDS_FAMILY ][0 ].m_revID , &pCounterAccessor, &pCounterScheduler) == GPA_STATUS_OK)
716+ if (m_gpa_GetAvailableCountersFuncPtr (GPA_API_OPENCL, ms_AMD_VENDOR_ID, m_availableDevices[GFX9_FAMILY ][0 ].m_deviceID , m_availableDevices[GFX9_FAMILY ][0 ].m_revID , &pCounterAccessor, &pCounterScheduler) == GPA_STATUS_OK)
700717 {
701- GetCounterInfoFromAccessor (VOLCANIC_ISLANDS_FAMILY , pCounterAccessor);
718+ GetCounterInfoFromAccessor (GFX9_FAMILY , pCounterAccessor);
702719 }
703720 else
704721 {
705- Util::LogError (" Unable to get counter data for VOLCANIC_ISLANDS_FAMILY " );
722+ Util::LogError (" Unable to get counter data for GFX9_FAMILY " );
706723 }
707724 }
708725
709- if (m_availableDevices.contains (SEA_ISLANDS_FAMILY ) && m_availableDevices[SEA_ISLANDS_FAMILY ].count () > 0 )
726+ if (m_availableDevices.contains (GFX8_FAMILY ) && m_availableDevices[GFX8_FAMILY ].count () > 0 )
710727 {
711- if (m_gpa_GetAvailableCountersFuncPtr (GPA_API_OPENCL, ms_AMD_VENDOR_ID, m_availableDevices[SEA_ISLANDS_FAMILY ][0 ].m_deviceID , m_availableDevices[SEA_ISLANDS_FAMILY ][0 ].m_revID , &pCounterAccessor, &pCounterScheduler) == GPA_STATUS_OK)
728+ if (m_gpa_GetAvailableCountersFuncPtr (GPA_API_OPENCL, ms_AMD_VENDOR_ID, m_availableDevices[GFX8_FAMILY ][0 ].m_deviceID , m_availableDevices[GFX8_FAMILY ][0 ].m_revID , &pCounterAccessor, &pCounterScheduler) == GPA_STATUS_OK)
712729 {
713- GetCounterInfoFromAccessor (SEA_ISLANDS_FAMILY , pCounterAccessor);
730+ GetCounterInfoFromAccessor (GFX8_FAMILY , pCounterAccessor);
714731 }
715732 else
716733 {
717- Util::LogError (" Unable to get counter data for SEA_ISLANDS_FAMILY " );
734+ Util::LogError (" Unable to get counter data for GFX8_FAMILY " );
718735 }
719736 }
720737
721- if (m_availableDevices.contains (SOUTHERN_ISLANDS_FAMILY ) && m_availableDevices[SOUTHERN_ISLANDS_FAMILY ].count () > 0 )
738+ if (m_availableDevices.contains (GFX7_FAMILY ) && m_availableDevices[GFX7_FAMILY ].count () > 0 )
722739 {
723- if (m_gpa_GetAvailableCountersFuncPtr (GPA_API_OPENCL, ms_AMD_VENDOR_ID, m_availableDevices[SOUTHERN_ISLANDS_FAMILY ][0 ].m_deviceID , m_availableDevices[SOUTHERN_ISLANDS_FAMILY ][0 ].m_revID , &pCounterAccessor, &pCounterScheduler) == GPA_STATUS_OK)
740+ if (m_gpa_GetAvailableCountersFuncPtr (GPA_API_OPENCL, ms_AMD_VENDOR_ID, m_availableDevices[GFX7_FAMILY ][0 ].m_deviceID , m_availableDevices[GFX7_FAMILY ][0 ].m_revID , &pCounterAccessor, &pCounterScheduler) == GPA_STATUS_OK)
724741 {
725- GetCounterInfoFromAccessor (SOUTHERN_ISLANDS_FAMILY , pCounterAccessor);
742+ GetCounterInfoFromAccessor (GFX7_FAMILY , pCounterAccessor);
726743 }
727744 else
728745 {
729- Util::LogError (" Unable to get counter data for SOUTHERN_ISLANDS_FAMILY" );
746+ Util::LogError (" Unable to get counter data for GFX7_FAMILY" );
747+ }
748+ }
749+
750+ if (m_availableDevices.contains (GFX6_FAMILY) && m_availableDevices[GFX6_FAMILY].count () > 0 )
751+ {
752+ if (m_gpa_GetAvailableCountersFuncPtr (GPA_API_OPENCL, ms_AMD_VENDOR_ID, m_availableDevices[GFX6_FAMILY][0 ].m_deviceID , m_availableDevices[GFX6_FAMILY][0 ].m_revID , &pCounterAccessor, &pCounterScheduler) == GPA_STATUS_OK)
753+ {
754+ GetCounterInfoFromAccessor (GFX6_FAMILY, pCounterAccessor);
755+ }
756+ else
757+ {
758+ Util::LogError (" Unable to get counter data for GFX6_FAMILY" );
730759 }
731760 }
732761 }
@@ -882,18 +911,22 @@ bool CounterManager::GetHardwareFamilyDisplayName(HardwareFamily hardwareFamily,
882911
883912 switch (hardwareFamily)
884913 {
885- case SOUTHERN_ISLANDS_FAMILY :
914+ case GFX6_FAMILY :
886915 generation = GDT_HW_GENERATION_SOUTHERNISLAND;
887916 break ;
888917
889- case SEA_ISLANDS_FAMILY :
918+ case GFX7_FAMILY :
890919 generation = GDT_HW_GENERATION_SEAISLAND;
891920 break ;
892921
893- case VOLCANIC_ISLANDS_FAMILY :
922+ case GFX8_FAMILY :
894923 generation = GDT_HW_GENERATION_VOLCANICISLAND;
895924 break ;
896925
926+ case GFX9_FAMILY:
927+ generation = GDT_HW_GENERATION_GFX9;
928+ break ;
929+
897930 default :
898931 generation = GDT_HW_GENERATION_NONE;
899932 break ;
0 commit comments