From e5a791217e38e47406eabc5c73f96c33c9876a80 Mon Sep 17 00:00:00 2001 From: German Andryeyev Date: Fri, 1 Apr 2022 11:30:24 -0400 Subject: [PATCH] SWDEV-1 - Fix compilation error with PAL staging Replace compile assert with an error message during execution Change-Id: I4c054c65845b14bb980e165855693705c097ff80 --- rocclr/device/pal/palcounters.cpp | 110 +++++++++++++++--------------- 1 file changed, 56 insertions(+), 54 deletions(-) diff --git a/rocclr/device/pal/palcounters.cpp b/rocclr/device/pal/palcounters.cpp index 5da623d5dd..5eb95efe83 100644 --- a/rocclr/device/pal/palcounters.cpp +++ b/rocclr/device/pal/palcounters.cpp @@ -24,9 +24,65 @@ namespace pal { +static constexpr std::array blockIdToIndexSelect = {{ + PCIndexSelect::None, // CPF + PCIndexSelect::ShaderEngine, // IA + PCIndexSelect::ShaderEngine, // VGT + PCIndexSelect::ShaderArray, // PA + PCIndexSelect::ShaderArray, // SC + PCIndexSelect::ShaderEngine, // SPI + PCIndexSelect::ShaderEngine, // SQ + PCIndexSelect::ShaderArray, // SX + PCIndexSelect::ComputeUnit, // TA + PCIndexSelect::ComputeUnit, // TD + PCIndexSelect::ComputeUnit, // TCP + PCIndexSelect::Instance, // TCC + PCIndexSelect::Instance, // TCA + PCIndexSelect::ShaderArray, // DB + PCIndexSelect::ShaderArray, // CB + PCIndexSelect::None, // GDS + PCIndexSelect::None, // SRBM + PCIndexSelect::None, // GRBM + PCIndexSelect::ShaderEngine, // GRBMSE + PCIndexSelect::None, // RLC + PCIndexSelect::Instance, // DMA + PCIndexSelect::None, // MC + PCIndexSelect::None, // CPG + PCIndexSelect::None, // CPC + PCIndexSelect::None, // WD + PCIndexSelect::None, // TCS + PCIndexSelect::None, // ATC + PCIndexSelect::None, // ATCL2 + PCIndexSelect::None, // MCVML2 + PCIndexSelect::Instance, // EA + PCIndexSelect::None, // RPB + PCIndexSelect::ShaderArray, // RMI + PCIndexSelect::Instance, // UMCCH + PCIndexSelect::Instance, // GE + PCIndexSelect::ShaderArray, // GL1A + PCIndexSelect::ShaderArray, // GL1C + PCIndexSelect::ShaderArray, // GL1CG + PCIndexSelect::Instance, // GL2A + PCIndexSelect::Instance, // GL2C + PCIndexSelect::None, // CHA + PCIndexSelect::Instance, // CHC + PCIndexSelect::None, // CHCG + PCIndexSelect::None, // GUS + PCIndexSelect::None, // GCR + PCIndexSelect::None, // PH + PCIndexSelect::ShaderArray, // UTCL1 + PCIndexSelect::None, // GeDist + PCIndexSelect::ShaderEngine, // GeSe + PCIndexSelect::None, // Df +}}; + PalCounterReference* PalCounterReference::Create(VirtualGPU& gpu) { Pal::Result result; + if (blockIdToIndexSelect.size() != static_cast(Pal::GpuBlock::Count)) { + LogError("Size of blockIdToIndexSelect does not match GpuBlock::Count"); + } + // Create performance experiment Pal::PerfExperimentCreateInfo createInfo = {}; @@ -149,60 +205,6 @@ bool PalCounterReference::finalize() { } } -static constexpr std::array blockIdToIndexSelect = {{ - PCIndexSelect::None, // CPF - PCIndexSelect::ShaderEngine, // IA - PCIndexSelect::ShaderEngine, // VGT - PCIndexSelect::ShaderArray, // PA - PCIndexSelect::ShaderArray, // SC - PCIndexSelect::ShaderEngine, // SPI - PCIndexSelect::ShaderEngine, // SQ - PCIndexSelect::ShaderArray, // SX - PCIndexSelect::ComputeUnit, // TA - PCIndexSelect::ComputeUnit, // TD - PCIndexSelect::ComputeUnit, // TCP - PCIndexSelect::Instance, // TCC - PCIndexSelect::Instance, // TCA - PCIndexSelect::ShaderArray, // DB - PCIndexSelect::ShaderArray, // CB - PCIndexSelect::None, // GDS - PCIndexSelect::None, // SRBM - PCIndexSelect::None, // GRBM - PCIndexSelect::ShaderEngine, // GRBMSE - PCIndexSelect::None, // RLC - PCIndexSelect::Instance, // DMA - PCIndexSelect::None, // MC - PCIndexSelect::None, // CPG - PCIndexSelect::None, // CPC - PCIndexSelect::None, // WD - PCIndexSelect::None, // TCS - PCIndexSelect::None, // ATC - PCIndexSelect::None, // ATCL2 - PCIndexSelect::None, // MCVML2 - PCIndexSelect::Instance, // EA - PCIndexSelect::None, // RPB - PCIndexSelect::ShaderArray, // RMI - PCIndexSelect::Instance, // UMCCH - PCIndexSelect::Instance, // GE - PCIndexSelect::ShaderArray, // GL1A - PCIndexSelect::ShaderArray, // GL1C - PCIndexSelect::ShaderArray, // GL1CG - PCIndexSelect::Instance, // GL2A - PCIndexSelect::Instance, // GL2C - PCIndexSelect::None, // CHA - PCIndexSelect::Instance, // CHC - PCIndexSelect::None, // CHCG - PCIndexSelect::None, // GUS - PCIndexSelect::None, // GCR - PCIndexSelect::None, // PH - PCIndexSelect::ShaderArray, // UTCL1 - PCIndexSelect::None, // GeDist - PCIndexSelect::ShaderEngine, // GeSe - PCIndexSelect::None, // Df -}}; - -static_assert(blockIdToIndexSelect.size() == static_cast(Pal::GpuBlock::Count), "size of blockIdToIndexSelect does not match GpuBlock::Count"); - // Converting from ORCA cmndefs.h to PAL palPerfExperiment.h static constexpr std::array, 83> ciBlockIdOrcaToPal = {{ {0x0E, 0}, // CB0