From efbae91c5f96e49a8c95a0f3ca5baa65cdacea03 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 1 Aug 2017 13:14:25 +0100 Subject: [PATCH] Remove duplicated GCN (Capeverde) entry in device list --- renderdoc/driver/ihv/amd/amd_isa.cpp | 12 +++++++----- renderdoc/driver/ihv/amd/amd_isa_devices.cpp | 8 +++++--- renderdoc/driver/ihv/amd/amd_isa_devices.h | 3 ++- renderdoc/driver/ihv/amd/amd_isa_win32.cpp | 3 ++- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/renderdoc/driver/ihv/amd/amd_isa.cpp b/renderdoc/driver/ihv/amd/amd_isa.cpp index 7645c1ee4..b3fb17daf 100644 --- a/renderdoc/driver/ihv/amd/amd_isa.cpp +++ b/renderdoc/driver/ihv/amd/amd_isa.cpp @@ -144,7 +144,7 @@ static bool IsSupported(GraphicsAPI api) void GetTargets(GraphicsAPI api, std::vector &targets) { - targets.reserve(ARRAY_COUNT(asicInfo) + 1); + targets.reserve(asicCount + 1); if(IsSupported(api)) { @@ -152,8 +152,8 @@ void GetTargets(GraphicsAPI api, std::vector &targets) if(api != GraphicsAPI::OpenGL) targets.push_back("AMDIL"); - for(const asic &a : asicInfo) - targets.push_back(a.name); + for(int i = 0; i < asicCount; i++) + targets.push_back(asicInfo[i].name); } else { @@ -179,8 +179,9 @@ std::string Disassemble(const SPVModule *spv, const std::string &entry, const st bool found = false; - for(const asic &a : asicInfo) + for(int i = 0; i < asicCount; i++) { + const asic &a = asicInfo[i]; if(target == a.name) { cmdLine += " -gfxip "; @@ -357,8 +358,9 @@ std::string Disassemble(ShaderStage stage, const std::vector &glsl, } bool found = false; - for(const asic &a : asicInfo) + for(int i = 0; i < asicCount; i++) { + const asic &a = asicInfo[i]; if(target == a.name) { cmdLine += StringFormat::Fmt("%d;%d;", a.chipFamily, a.chipRevision); diff --git a/renderdoc/driver/ihv/amd/amd_isa_devices.cpp b/renderdoc/driver/ihv/amd/amd_isa_devices.cpp index 3c6addd17..57e783c96 100644 --- a/renderdoc/driver/ihv/amd/amd_isa_devices.cpp +++ b/renderdoc/driver/ihv/amd/amd_isa_devices.cpp @@ -23,14 +23,14 @@ ******************************************************************************/ #include "amd_isa_devices.h" +#include "common/common.h" #include "official/RGA/Common/asic_reg/devices.h" -GCNISA::asic GCNISA::asicInfo[22] = { +const GCNISA::asic GCNISA::asicInfo[] = { // Southern Islands {"GCN (Tahiti)", "6", FAMILY_SI, SI_TAHITI_P_B1}, {"GCN (Pitcairn)", "6", FAMILY_SI, SI_PITCAIRN_PM_A1}, {"GCN (Capeverde)", "6", FAMILY_SI, SI_CAPEVERDE_M_A1}, - {"GCN (Capeverde)", "6", FAMILY_SI, SI_CAPEVERDE_M_A1}, {"GCN (Oland)", "6", FAMILY_SI, SI_OLAND_M_A0}, {"GCN (Hainan)", "6", FAMILY_SI, SI_HAINAN_V_A0}, // Sea Islands @@ -52,4 +52,6 @@ GCNISA::asic GCNISA::asicInfo[22] = { {"GCN (Baffin)", "8", FAMILY_VI, VI_BAFFIN_M_A0}, {"GCN (gfx804)", "8", FAMILY_VI, VI_LEXA_V_A0}, // GDT_HW_GENERATION_GFX9 goes here, when it's supported by amdspv. -}; \ No newline at end of file +}; + +RDCCOMPILE_ASSERT(ARRAY_COUNT(GCNISA::asicInfo) == GCNISA::asicCount, "Mismatched array count"); \ No newline at end of file diff --git a/renderdoc/driver/ihv/amd/amd_isa_devices.h b/renderdoc/driver/ihv/amd/amd_isa_devices.h index 132c851a8..23e65757e 100644 --- a/renderdoc/driver/ihv/amd/amd_isa_devices.h +++ b/renderdoc/driver/ihv/amd/amd_isa_devices.h @@ -34,6 +34,7 @@ struct asic int chipRevision; }; -extern asic asicInfo[22]; +const int asicCount = 21; +extern const asic asicInfo[]; }; // namespace GCNISA diff --git a/renderdoc/driver/ihv/amd/amd_isa_win32.cpp b/renderdoc/driver/ihv/amd/amd_isa_win32.cpp index bae7bd393..4acf72ded 100644 --- a/renderdoc/driver/ihv/amd/amd_isa_win32.cpp +++ b/renderdoc/driver/ihv/amd/amd_isa_win32.cpp @@ -91,8 +91,9 @@ std::string GCNISA::Disassemble(const DXBC::DXBCFile *dxbc, const std::string &t in.numCompileOptions = 0; in.pCompileOptions = opts; - for(const asic &a : asicInfo) + for(int i = 0; i < asicCount; i++) { + const asic &a = asicInfo[i]; if(target == a.name) { in.chipFamily = a.chipFamily;