Skip to content

Commit bcc2392

Browse files
committed
Fix GPA-58: OpenGL device info needs updating
Change-Id: I6e15e2756d9f6695e44aeabee3eda06a5d177456
1 parent 1fd8f88 commit bcc2392

File tree

3 files changed

+54
-212
lines changed

3 files changed

+54
-212
lines changed

Src/GPUPerfAPIGL/ASICInfo.cpp

Lines changed: 15 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -279,119 +279,39 @@ bool GetASICInfo(ASICInfo& rASICInfo)
279279
int nVersion = INT_MAX;
280280
#endif
281281

282-
if (nVersion >= 13252)
282+
if (nVersion < 13452)
283283
{
284-
// starting in the 14.50 driver (GL version 13252), Kauai, Tiran, and Maui were removed from the driver
285-
if (nAsicType >= ATIASIC_ID_KAUAI)
286-
{
287-
nAsicType++;
288-
}
289-
290-
if (nAsicType >= ATIASIC_ID_TIRAN_P)
291-
{
292-
nAsicType++;
293-
}
294-
295-
if (nAsicType >= ATIASIC_ID_MAUI_P)
296-
{
297-
nAsicType++;
298-
}
299-
}
300-
301-
if (nVersion < 13393)
302-
{
303-
/// Stoney was added to driver starting in 15.20
304-
if (nAsicType >= ATIASIC_ID_STONEY)
305-
{
306-
nAsicType--;
307-
}
308-
}
309-
else
310-
{
311-
/// Bermuda was removed from driver starting in 15.20
312-
if (nAsicType >= ATIASIC_ID_BERMUDA_P)
313-
{
314-
nAsicType++;
315-
}
284+
// pre-GCN devices were removed from the driver starting with version 13452.
285+
// if the driver version is earlier than that we will return an error.
286+
GPA_LogError("OpenGL driver version is too old. Please update your driver.");
287+
return false;
316288
}
317289

318290
// store the Asic Revision ID
319291
rASICInfo.eAsicRev = (ATIAsicID) nAsicType;
320292

321293
// Decode the ASIC Type
322-
if (nAsicType == ATIASIC_ID_R600 ||
323-
nAsicType == ATIASIC_ID_RV630 ||
324-
nAsicType == ATIASIC_ID_RV610 ||
325-
nAsicType == ATIASIC_ID_RV670)
326-
{
327-
GPA_LogMessage("Recognized an ATI Radeon HD 2000 or 3000 series card.");
328-
rASICInfo.eAsicType = ASIC_R6xx;
329-
}
330-
else if (nAsicType == ATIASIC_ID_RS780 ||
331-
nAsicType == ATIASIC_ID_RV770 ||
332-
nAsicType == ATIASIC_ID_RV740 ||
333-
nAsicType == ATIASIC_ID_RV730 ||
334-
nAsicType == ATIASIC_ID_RV710)
335-
{
336-
GPA_LogMessage("Recognized an ATI Radeon HD 4000 series card.");
337-
rASICInfo.eAsicType = ASIC_R7xx;
338-
}
339-
else if (nAsicType == ATIASIC_ID_R870 ||
340-
nAsicType == ATIASIC_ID_R830 ||
341-
nAsicType == ATIASIC_ID_REDWOOD ||
342-
nAsicType == ATIASIC_ID_CEDAR)
343-
{
344-
GPA_LogMessage("Recognized an Evergreen card.");
345-
rASICInfo.eAsicType = ASIC_R8xx;
346-
}
347-
else if (nAsicType == ATIASIC_ID_SUPERSUMO ||
348-
nAsicType == ATIASIC_ID_SUMO ||
349-
nAsicType == ATIASIC_ID_WRESTLER)
350-
{
351-
GPA_LogMessage("Recognized an APU with Evergreen graphics.");
352-
rASICInfo.eAsicType = ASIC_R8xx;
353-
}
354-
else if (nAsicType == ATIASIC_ID_BARTS ||
355-
nAsicType == ATIASIC_ID_TURKS ||
356-
nAsicType == ATIASIC_ID_CAICOS)
357-
{
358-
// Barts, Turks, and Caicos are based on R8xx, and have R8xx perf counters,
359-
// so report it as R8xx.
360-
GPA_LogMessage("Recognized an Evergreen (NI) card.");
361-
rASICInfo.eAsicType = ASIC_R8xx;
362-
}
363-
else if (nAsicType == ATIASIC_ID_CAYMAN)
364-
{
365-
GPA_LogMessage("Recognized a Northern Islands card.");
366-
rASICInfo.eAsicType = ASIC_R9xx;
367-
}
368-
else if (nAsicType == ATIASIC_ID_DEVASTATOR ||
369-
nAsicType == ATIASIC_ID_SCRAPPER)
370-
{
371-
GPA_LogMessage("Recognized an APU with Northern Islands graphics.");
372-
rASICInfo.eAsicType = ASIC_R9xx;
373-
}
374-
else if (nAsicType == ATIASIC_ID_TAHITI_P ||
375-
nAsicType == ATIASIC_ID_PITCAIRN_PM ||
376-
nAsicType == ATIASIC_ID_CAPEVERDE_M ||
377-
nAsicType == ATIASIC_ID_OLAND_M ||
378-
nAsicType == ATIASIC_ID_HAINAN_M)
294+
if (nAsicType == ATIASIC_ID_TAHITI_P ||
295+
nAsicType == ATIASIC_ID_PITCAIRN_PM ||
296+
nAsicType == ATIASIC_ID_CAPEVERDE_M ||
297+
nAsicType == ATIASIC_ID_OLAND_M ||
298+
nAsicType == ATIASIC_ID_HAINAN_M)
379299
{
380-
GPA_LogMessage("Recognized a Southern Islands card.");
300+
GPA_LogMessage("Recognized a GFX6 card.");
381301
rASICInfo.eAsicType = ASIC_Gfx6;
382302
}
383303
else if (nAsicType == ATIASIC_ID_BONAIRE_M ||
384304
nAsicType == ATIASIC_ID_HAWAII_P)
385305
{
386-
GPA_LogMessage("Recognized a Sea Islands card.");
306+
GPA_LogMessage("Recognized a GFX7 card.");
387307
rASICInfo.eAsicType = ASIC_Gfx7;
388308
}
389309
else if (nAsicType == ATIASIC_ID_KALINDI ||
390310
nAsicType == ATIASIC_ID_GODAVARI ||
391311
nAsicType == ATIASIC_ID_SPECTRE ||
392312
nAsicType == ATIASIC_ID_SPOOKY)
393313
{
394-
GPA_LogMessage("Recognized an APU with Sea Islands graphics.");
314+
GPA_LogMessage("Recognized an APU with GFX7 graphics.");
395315
rASICInfo.eAsicType = ASIC_Gfx7;
396316
}
397317
else if (nAsicType == ATIASIC_ID_ICELAND_M ||
@@ -400,13 +320,13 @@ bool GetASICInfo(ASICInfo& rASICInfo)
400320
nAsicType == ATIASIC_ID_ELLESMERE ||
401321
nAsicType == ATIASIC_ID_BAFFIN)
402322
{
403-
GPA_LogMessage("Recognized a Volcanic Islands card.");
323+
GPA_LogMessage("Recognized a GFX8 card.");
404324
rASICInfo.eAsicType = ASIC_Gfx8;
405325
}
406326
else if (nAsicType == ATIASIC_ID_CARRIZO ||
407327
nAsicType == ATIASIC_ID_STONEY)
408328
{
409-
GPA_LogMessage("Recognized an APU with Volcanic Islands graphics.");
329+
GPA_LogMessage("Recognized an APU with GFX8 graphics.");
410330
rASICInfo.eAsicType = ASIC_Gfx8;
411331
}
412332
else
@@ -422,10 +342,6 @@ bool GetASICInfo(ASICInfo& rASICInfo)
422342
// Now, fill in the rest of the ASIC structure
423343
switch (rASICInfo.eAsicType)
424344
{
425-
case ASIC_R6xx:
426-
case ASIC_R7xx:
427-
case ASIC_R8xx:
428-
case ASIC_R9xx:
429345
case ASIC_Gfx6:
430346
case ASIC_Gfx7:
431347
case ASIC_Gfx8:

Src/GPUPerfAPIGL/ASICInfo.h

Lines changed: 25 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@
1616
//=========================================================================================================
1717
typedef enum
1818
{
19-
ASIC_R6xx, ///< R600 Family
20-
ASIC_R7xx, ///< R700 Family
21-
ASIC_R8xx, ///< R800 Family
22-
ASIC_R9xx, ///< R900 Family
2319
ASIC_Gfx6, ///< GFX6 Family
2420
ASIC_Gfx7, ///< GFX7 Family
2521
ASIC_Gfx8, ///< GFX8 Family
@@ -32,57 +28,31 @@ typedef enum
3228
/// Asic identifier enumerant
3329
typedef enum ATIAsicIDEnum
3430
{
35-
ATIASIC_ID_R600, ///< ATIAsicID for R600 // < this is the first enum value in Cat 10.2 (aka GL driver version 9551)
36-
ATIASIC_ID_RV630, ///< ATIAsicID for RV630
37-
ATIASIC_ID_RV610, ///< ATIAsicID for RV610
38-
ATIASIC_ID_RS780, ///< ATIAsicID for RS780
39-
ATIASIC_ID_RV770, ///< ATIAsicID for RV770
40-
ATIASIC_ID_RV670, ///< ATIAsicID for RV670
41-
ATIASIC_ID_RV730, ///< ATIAsicID for RV730
42-
ATIASIC_ID_RV710, ///< ATIAsicID for RV710
43-
ATIASIC_ID_KONG, ///< ATIAsicID for RoadRunner
44-
ATIASIC_ID_R870, ///< ATIAsicID for R870
45-
ATIASIC_ID_R830, ///< ATIAsicID for R830
46-
ATIASIC_ID_RV740, ///< ATIAsicID for RV740
47-
ATIASIC_ID_REDWOOD, ///< ATIAsicID for REDWOOD
48-
ATIASIC_ID_CEDAR, ///< ATIAsicID for CEDAR
49-
ATIASIC_ID_SUPERSUMO, ///< ATIASICID for SUPERSUMO
50-
ATIASIC_ID_SUMO, ///< ATIASICID for SUMO
51-
ATIASIC_ID_WRESTLER, ///< ATIASICID for WRESTLER
52-
ATIASIC_ID_CAYMAN, ///< ATIAsicID for CAYMAN
53-
ATIASIC_ID_KAUAI, ///< ATIAsicID for KAUAI this was removed in 14.50 (GL version 13252)
54-
ATIASIC_ID_BARTS, ///< ATIAsicID for BARTS (Evergreen derivative)
55-
ATIASIC_ID_TURKS, ///< ATIAsicID for TURKS (Evergreen derivative)
56-
ATIASIC_ID_CAICOS, ///< ATIAsicID for CAICOS(Evergreen derivative)
57-
ATIASIC_ID_TAHITI_P, ///< ATIASICID for TAHITI (GFX6)
58-
ATIASIC_ID_PITCAIRN_PM, ///< ATIASICID for PITCAIRN (GFX6)
59-
ATIASIC_ID_CAPEVERDE_M, ///< ATIASICID for CAPEVERDE (GFX6)
60-
ATIASIC_ID_OLAND_M, ///< ATIASICID for OLAND (GFX6)
61-
ATIASIC_ID_HAINAN_M, ///< ATIASICID for HAINAN (GFX6)
62-
ATIASIC_ID_DEVASTATOR, ///< ATIASICID for TRINITY (GFX6 Fusion)
63-
ATIASIC_ID_SCRAPPER, ///< ATIASICID for TRINITY (GFX6 Fusion)
64-
ATIASIC_ID_TIRAN_P, ///< ATIASICID for TIRAN (Sea Islands) this was removed in 14.50 (GL version 13252)
65-
ATIASIC_ID_BONAIRE_M, ///< ATIASICID for BONAIRE (GFX7)
66-
ATIASIC_ID_SPECTRE, ///< ATIASICID for KAVERI (GFX7 Fusion KV1)
67-
ATIASIC_ID_SPOOKY, ///< ATIASICID for KAVERI (GFX7 Fusion KV2)
68-
ATIASIC_ID_KALINDI, ///< ATIASICID for KABINI (GFX7 Fusion KB)
69-
ATIASIC_ID_HAWAII_P, ///< ATIASICID for HAWAII (GFX7)
70-
ATIASIC_ID_MAUI_P, ///< ATIASICID for MAUI (Sea Islands) this was removed in 14.50 (GL version 13252)
71-
ATIASIC_ID_ICELAND_M, ///< ATIASICID for ICELAND (GFX8)
72-
ATIASIC_ID_TONGA_P, ///< ATIASICID for TONGA (GFX8)
73-
ATIASIC_ID_GODAVARI, ///< ATIASICID for MULLINS (GFX8 Fusion (Mullins))
74-
ATIASIC_ID_CARRIZO, ///< ATIASICID for Carrizo (GFX8 Fusion)
75-
ATIASIC_ID_NOLAN, ///< ATIASICID for Nolan (GFX8.1 APU)
76-
ATIASIC_ID_STONEY, ///< ATIASICID for Stoney (GFX8.1 APU, almost the same as Nolan) this was added in 15.20 (GL version 13393)
77-
ATIASIC_ID_AMUR, ///< ATIASICID for Amur (GFX8.1 APU)
78-
ATIASIC_ID_BERMUDA_P, ///< ATIASICID for Bermuda (Volcanic Islands) this was removed in 15.20 (GL version 13393)
79-
ATIASIC_ID_FIJI_P, ///< ATIASICID for Fiji (GFX8)
80-
ATIASIC_ID_ELLESMERE, ///< ATIASICID for Ellesmere (GFX8)
81-
ATIASIC_ID_BAFFIN, ///< ATIASICID for Baffin (GFX8)
82-
ATIASIC_ID_GREENLAND, ///< ATIASICID for Greenland (GFX9)
83-
ATIASIC_ID_UNKNOWN, ///< Unknown Asic
84-
ATIAsicId_First = ATIASIC_ID_R600, ///< First place holder
85-
ATIAsicId_LAST = ATIASIC_ID_UNKNOWN ///< Last place holder
31+
ATIASIC_ID_TAHITI_P, ///< ATIASICID for TAHITI (GFX6)
32+
ATIASIC_ID_PITCAIRN_PM, ///< ATIASICID for PITCAIRN (GFX6)
33+
ATIASIC_ID_CAPEVERDE_M, ///< ATIASICID for CAPEVERDE (GFX6)
34+
ATIASIC_ID_OLAND_M, ///< ATIASICID for OLAND (GFX6)
35+
ATIASIC_ID_HAINAN_M, ///< ATIASICID for HAINAN (GFX6)
36+
ATIASIC_ID_BONAIRE_M, ///< ATIASICID for BONAIRE (GFX7)
37+
ATIASIC_ID_SPECTRE, ///< ATIASICID for KAVERI (GFX7 Fusion KV1)
38+
ATIASIC_ID_SPOOKY, ///< ATIASICID for KAVERI (GFX7 Fusion KV2)
39+
ATIASIC_ID_KALINDI, ///< ATIASICID for KABINI (GFX7 Fusion KB)
40+
ATIASIC_ID_HAWAII_P, ///< ATIASICID for HAWAII (GFX7)
41+
ATIASIC_ID_ICELAND_M, ///< ATIASICID for ICELAND (GFX8)
42+
ATIASIC_ID_TONGA_P, ///< ATIASICID for TONGA (GFX8)
43+
ATIASIC_ID_GODAVARI, ///< ATIASICID for MULLINS (GFX8 Fusion (Mullins))
44+
ATIASIC_ID_CARRIZO, ///< ATIASICID for Carrizo (GFX8 Fusion)
45+
ATIASIC_ID_NOLAN, ///< ATIASICID for Nolan (GFX8.1 APU)
46+
ATIASIC_ID_STONEY, ///< ATIASICID for Stoney (GFX8.1 APU, almost the same as Nolan) this was added in 15.20 (GL version 13393)
47+
ATIASIC_ID_AMUR, ///< ATIASICID for Amur (GFX8.1 APU)
48+
ATIASIC_ID_FIJI_P, ///< ATIASICID for Fiji (GFX8)
49+
ATIASIC_ID_ELLESMERE, ///< ATIASICID for Ellesmere (GFX8)
50+
ATIASIC_ID_BAFFIN, ///< ATIASICID for Baffin (GFX8)
51+
ATIASIC_ID_LEXA, ///< ATIASICID for Lexa (GFX8)
52+
ATIASIC_ID_GREENLAND, ///< ATIASICID for Greenland (GFX9)
53+
ATIASIC_ID_UNKNOWN, ///< Unknown Asic
54+
ATIAsicId_First = ATIASIC_ID_TAHITI_P, ///< First place holder
55+
ATIAsicId_LAST = ATIASIC_ID_UNKNOWN ///< Last place holder
8656
} ATIAsicID;
8757

8858
/// Asic-specific information

Src/GPUPerfAPIGL/GPUPerfAPIGL.cpp

Lines changed: 14 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -632,50 +632,6 @@ GPA_Status GPA_IMP_GetHWInfo(void* pContext, GPA_HWInfo* pHwInfo)
632632
// ASICInfo from gl driver; HWInfo from http://ati.amd.com/developer/ATI_Device_IDs.txt
633633
switch (asicInfo.eAsicRev)
634634
{
635-
case ATIASIC_ID_R870:
636-
pHwInfo->SetDeviceID(0x6898);
637-
break;
638-
639-
case ATIASIC_ID_R830:
640-
pHwInfo->SetDeviceID(0x68B8);
641-
break;
642-
643-
case ATIASIC_ID_REDWOOD:
644-
pHwInfo->SetDeviceID(0x68D8);
645-
break;
646-
647-
case ATIASIC_ID_CEDAR:
648-
pHwInfo->SetDeviceID(0x68F8);
649-
break;
650-
651-
case ATIASIC_ID_CAYMAN:
652-
pHwInfo->SetDeviceID(0x6718);
653-
break;
654-
655-
case ATIASIC_ID_BARTS:
656-
pHwInfo->SetDeviceID(0x6738);
657-
break;
658-
659-
case ATIASIC_ID_TURKS:
660-
pHwInfo->SetDeviceID(0x6758);
661-
break;
662-
663-
case ATIASIC_ID_CAICOS:
664-
pHwInfo->SetDeviceID(0x6779);
665-
break;
666-
667-
case ATIASIC_ID_WRESTLER:
668-
pHwInfo->SetDeviceID(0x9802);
669-
break;
670-
671-
case ATIASIC_ID_BONAIRE_M:
672-
pHwInfo->SetDeviceID(0x665C);
673-
break;
674-
675-
case ATIASIC_ID_KALINDI:
676-
pHwInfo->SetDeviceID(0x9830);
677-
break;
678-
679635
case ATIASIC_ID_TAHITI_P:
680636
pHwInfo->SetDeviceID(0x6779);
681637
break;
@@ -696,12 +652,8 @@ GPA_Status GPA_IMP_GetHWInfo(void* pContext, GPA_HWInfo* pHwInfo)
696652
pHwInfo->SetDeviceID(0x6660);
697653
break;
698654

699-
case ATIASIC_ID_DEVASTATOR:
700-
pHwInfo->SetDeviceID(0x9900);
701-
break;
702-
703-
case ATIASIC_ID_SCRAPPER:
704-
pHwInfo->SetDeviceID(0x9990);
655+
case ATIASIC_ID_BONAIRE_M:
656+
pHwInfo->SetDeviceID(0x665C);
705657
break;
706658

707659
case ATIASIC_ID_SPECTRE:
@@ -712,6 +664,10 @@ GPA_Status GPA_IMP_GetHWInfo(void* pContext, GPA_HWInfo* pHwInfo)
712664
pHwInfo->SetDeviceID(0x1312);
713665
break;
714666

667+
case ATIASIC_ID_KALINDI:
668+
pHwInfo->SetDeviceID(0x9830);
669+
break;
670+
715671
case ATIASIC_ID_HAWAII_P:
716672
pHwInfo->SetDeviceID(0x67A0);
717673
break;
@@ -724,22 +680,22 @@ GPA_Status GPA_IMP_GetHWInfo(void* pContext, GPA_HWInfo* pHwInfo)
724680
pHwInfo->SetDeviceID(0x6920);
725681
break;
726682

727-
case ATIASIC_ID_CARRIZO:
728-
pHwInfo->SetDeviceID(0x9870);
729-
break;
730-
731-
case ATIASIC_ID_FIJI_P:
732-
pHwInfo->SetDeviceID(0x7300);
733-
break;
734-
735683
case ATIASIC_ID_GODAVARI:
736684
pHwInfo->SetDeviceID(0x9855);
737685
break;
738686

687+
case ATIASIC_ID_CARRIZO:
688+
pHwInfo->SetDeviceID(0x9870);
689+
break;
690+
739691
case ATIASIC_ID_STONEY:
740692
pHwInfo->SetDeviceID(0x98E4);
741693
break;
742694

695+
case ATIASIC_ID_FIJI_P:
696+
pHwInfo->SetDeviceID(0x7300);
697+
break;
698+
743699
case ATIASIC_ID_ELLESMERE:
744700
pHwInfo->SetDeviceID(0x67DF);
745701
break;

0 commit comments

Comments
 (0)