From 522de8919058d063cf38c440dbf8b8b2e5a6a7ba Mon Sep 17 00:00:00 2001
From: foreman
Date: Thu, 10 May 2018 12:42:46 -0400
Subject: [PATCH] P4 to Git Change 1553162 by asalmanp@asalmanp-ocl-stg on
2018/05/10 12:34:13
SWDEV-132899 - [OCL][GFX10] Adding perfcounter support
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palcounters.cpp#16 edit
---
rocclr/runtime/device/pal/palcounters.cpp | 147 ++++++++++++++++++++++
1 file changed, 147 insertions(+)
diff --git a/rocclr/runtime/device/pal/palcounters.cpp b/rocclr/runtime/device/pal/palcounters.cpp
index 0370dac1dd..3020a66f04 100644
--- a/rocclr/runtime/device/pal/palcounters.cpp
+++ b/rocclr/runtime/device/pal/palcounters.cpp
@@ -486,6 +486,146 @@ static const std::array, 125> gfx9BlockIdPal = {{
{0x1F, 7}, // RMI - 124
}};
+static const std::array, 137> gfx10BlockIdPal = { {
+ { 0x0E, 0 }, // CB0 - 0
+ { 0x0E, 1 }, // CB1 - 1
+ { 0x0E, 2 }, // CB2 - 2
+ { 0x0E, 3 }, // CB3 - 3
+ { 0x00, 0 }, // CPF - 4
+ { 0x0D, 0 }, // DB0 - 5
+ { 0x0D, 1 }, // DB1 - 6
+ { 0x0D, 2 }, // DB2 - 7
+ { 0x0D, 3 }, // DB3 - 8
+ { 0x11, 0 }, // GRBM - 9
+ { 0x12, 0 }, // GRBMSE - 10
+ { 0x03, 0 }, // PA_SU - 11
+ { 0x03, 0 }, // PA_SC - 12
+ { 0x05, 0 }, // SPI - 13
+ { 0x06, 0 }, // SQ - 14
+ { 0x06, 0 }, // SQ_ES - 15
+ { 0x06, 0 }, // SQ_GS - 16
+ { 0x06, 0 }, // SQ_VS - 17
+ { 0x06, 0 }, // SQ_PS - 18
+ { 0x06, 0 }, // SQ_LS - 19
+ { 0x06, 0 }, // SQ_HS - 20
+ { 0x06, 0 }, // SQ_CS - 21
+ { 0x07, 0 }, // SX - 22
+ { 0x08, 0 }, // TA0 - 23
+ { 0x08, 1 }, // TA1 - 24
+ { 0x08, 2 }, // TA2 - 25
+ { 0x08, 3 }, // TA3 - 26
+ { 0x08, 4 }, // TA4 - 27
+ { 0x08, 5 }, // TA5 - 28
+ { 0x08, 6 }, // TA6 - 29
+ { 0x08, 7 }, // TA7 - 30
+ { 0x08, 8 }, // TA8 - 31
+ { 0x08, 9 }, // TA9 - 32
+ { 0x08, 0x0a }, // TA10 - 33
+ { 0x08, 0x0b }, // TA11 - 34
+ { 0x08, 0x0c }, // TA12 - 35
+ { 0x08, 0x0d }, // TA13 - 36
+ { 0x08, 0x0e }, // TA14 - 37
+ { 0x08, 0x0f }, // TA15 - 38
+ { 0x0C, 0 }, // TCA0 - 39
+ { 0x0C, 1 }, // TCA1 - 40
+ { 0x0B, 0 }, // TCC0 - 41
+ { 0x0B, 1 }, // TCC1 - 42
+ { 0x0B, 2 }, // TCC2 - 43
+ { 0x0B, 3 }, // TCC3 - 44
+ { 0x0B, 4 }, // TCC4 - 45
+ { 0x0B, 5 }, // TCC5 - 46
+ { 0x0B, 6 }, // TCC6 - 47
+ { 0x0B, 7 }, // TCC7 - 48
+ { 0x0B, 8 }, // TCC8 - 49
+ { 0x0B, 9 }, // TCC9 - 50
+ { 0x0B, 0x0a }, // TCC10 - 51
+ { 0x0B, 0x0b }, // TCC11 - 52
+ { 0x0B, 0x0c }, // TCC12 - 53
+ { 0x0B, 0x0d }, // TCC13 - 54
+ { 0x0B, 0x0e }, // TCC14 - 55
+ { 0x0B, 0x0f }, // TCC15 - 56
+ { 0x09, 0 }, // TD0 - 57
+ { 0x09, 1 }, // TD1 - 58
+ { 0x09, 2 }, // TD2 - 59
+ { 0x09, 3 }, // TD3 - 60
+ { 0x09, 4 }, // TD4 - 61
+ { 0x09, 5 }, // TD5 - 62
+ { 0x09, 6 }, // TD6 - 63
+ { 0x09, 7 }, // TD7 - 64
+ { 0x09, 8 }, // TD8 - 65
+ { 0x09, 9 }, // TD9 - 66
+ { 0x09, 0x0a }, // TD10 - 67
+ { 0x09, 0x0b }, // TD11 - 68
+ { 0x09, 0x0c }, // TD12 - 69
+ { 0x09, 0x0d }, // TD13 - 70
+ { 0x09, 0x0e }, // TD14 - 71
+ { 0x09, 0x0f }, // TD15 - 72
+ { 0x0A, 0 }, // TCP0 - 73
+ { 0x0A, 1 }, // TCP1 - 74
+ { 0x0A, 2 }, // TCP2 - 75
+ { 0x0A, 3 }, // TCP3 - 76
+ { 0x0A, 4 }, // TCP4 - 77
+ { 0x0A, 5 }, // TCP5 - 78
+ { 0x0A, 6 }, // TCP6 - 79
+ { 0x0A, 7 }, // TCP7 - 80
+ { 0x0A, 8 }, // TCP8 - 81
+ { 0x0A, 9 }, // TCP9 - 82
+ { 0x0A, 0x0a }, // TCP10 - 83
+ { 0x0A, 0x0b }, // TCP11 - 84
+ { 0x0A, 0x0c }, // TCP12 - 85
+ { 0x0A, 0x0d }, // TCP13 - 86
+ { 0x0A, 0x0e }, // TCP14 - 87
+ { 0x0A, 0x0f }, // TCP15 - 88
+ { 0x0F, 0 }, // GDS - 89
+ { 0x02, 0 }, // VGT - 90
+ { 0x01, 0 }, // IA - 91
+ { 0x15, 0 }, // MC - 92
+ { 0x10, 0 }, // SRBM - 93
+ { 0x18, 0 }, // WD - 94
+ { 0x16, 0 }, // CPG - 95
+ { 0x17, 0 }, // CPC - 96
+ { 0x1A, 0 }, // ATC - 97
+ { 0x1B, 0 }, // ATCL2 - 98
+ { 0x1C, 0 }, // MCVML2 - 99
+ { 0x1D, 0 }, // EA - 100
+ { 0x1D, 1 }, // EA - 101
+ { 0x1D, 2 }, // EA - 102
+ { 0x1D, 3 }, // EA - 103
+ { 0x1D, 4 }, // EA - 104
+ { 0x1D, 5 }, // EA - 105
+ { 0x1D, 6 }, // EA - 106
+ { 0x1D, 7 }, // EA - 107
+ { 0x1D, 8 }, // EA - 108
+ { 0x1D, 9 }, // EA - 109
+ { 0x1D, 0x0a }, // EA - 110
+ { 0x1D, 0x0b }, // EA - 111
+ { 0x1D, 0x0c }, // EA - 112
+ { 0x1D, 0x0d }, // EA - 113
+ { 0x1D, 0x0e }, // EA - 114
+ { 0x1D, 0x0f }, // EA - 115
+ { 0x1E, 0 }, // RPB - 116
+ { 0x1F, 0 }, // RMI - 117
+ { 0x1F, 1 }, // RMI - 118
+ { 0x1F, 2 }, // RMI - 119
+ { 0x1F, 3 }, // RMI - 120
+ { 0x1F, 4 }, // RMI - 121
+ { 0x1F, 5 }, // RMI - 122
+ { 0x1F, 6 }, // RMI - 123
+ { 0x1F, 7 }, // RMI - 124
+ { 0x20, 0 }, // GE - 125
+ { 0x21, 0 }, // GL1A - 126
+ { 0x22, 0 }, // GL1C - 127
+ { 0x23, 0 }, // Gl1CG - 128
+ { 0x24, 0 }, // GL2A - 129
+ { 0x25, 0 }, // GL2C - 130
+ { 0x26, 0 }, // CHA - 131
+ { 0x27, 0 }, // CHC - 132
+ { 0x28, 0 }, // CHCG - 133
+ { 0x29, 0 }, // GUS - 134
+ { 0x2A, 0 }, // GCR - 135
+ { 0x2B, 0 }, // PH - 136
+ } };
+
void PerfCounter::convertInfo() {
switch (dev().ipLevel()) {
case Pal::GfxIpLevel::GfxIp7:
@@ -509,6 +649,13 @@ void PerfCounter::convertInfo() {
info_.counterIndex_ = std::get<1>(p);
}
break;
+ case Pal::GfxIpLevel::GfxIp10:
+ if (info_.blockIndex_ < gfx10BlockIdPal.size()) {
+ auto p = gfx10BlockIdPal[info_.blockIndex_];
+ info_.blockIndex_ = std::get<0>(p);
+ info_.counterIndex_ = std::get<1>(p);
+ }
+ break;
default:
Unimplemented();
break;