From a76aa1dede79168b415700232dbfafc337d7afc4 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 18 Aug 2021 14:17:29 +0100 Subject: [PATCH] Update RGA devices list to include RDNA2 * We also drop everything gfx804 to keep the device list from being too bloated, as well as AMD planning to remove support for these devices soon. --- renderdoc/driver/ihv/amd/amd_isa.cpp | 7 ++++++- renderdoc/driver/ihv/amd/amd_isa_devices.cpp | 9 ++++++--- renderdoc/driver/ihv/amd/amd_isa_devices.h | 3 ++- .../driver/ihv/amd/official/RGA/Common/AsicReg/devices.h | 6 +++++- util/test/tests/D3D11/D3D11_Shader_ISA.py | 6 +++--- util/test/tests/D3D12/D3D12_Shader_ISA.py | 6 +++--- util/test/tests/GL/GL_Shader_ISA.py | 6 +++--- util/test/tests/Vulkan/VK_Shader_ISA.py | 6 +++--- 8 files changed, 31 insertions(+), 18 deletions(-) diff --git a/renderdoc/driver/ihv/amd/amd_isa.cpp b/renderdoc/driver/ihv/amd/amd_isa.cpp index bc3f7d7d6..cbcf91d92 100644 --- a/renderdoc/driver/ihv/amd/amd_isa.cpp +++ b/renderdoc/driver/ihv/amd/amd_isa.cpp @@ -26,10 +26,15 @@ #include "common/common.h" #include "common/formatting.h" #include "core/plugins.h" +#include "core/settings.h" #include "os/os_specific.h" #include "strings/string_utils.h" #include "amd_isa_devices.h" +RDOC_CONFIG(bool, AMD_ISA_ShowLegacyASICs, false, + "Show legacy ASICs for AMD shader disassembly targets. Note that depending on the " + "environment if driver support is required, these may not be available."); + namespace GCNISA { #if ENABLED(RDOC_WIN32) @@ -162,7 +167,7 @@ void GetTargets(GraphicsAPI api, rdcarray &targets) { targets.push_back("AMDIL"); - for(int i = 0; i < asicCount; i++) + for(int i = AMD_ISA_ShowLegacyASICs() ? 0 : legacyAsicCount; i < asicCount; i++) targets.push_back(asicInfo[i].name); } else diff --git a/renderdoc/driver/ihv/amd/amd_isa_devices.cpp b/renderdoc/driver/ihv/amd/amd_isa_devices.cpp index 44f3fb9c5..20ded498a 100644 --- a/renderdoc/driver/ihv/amd/amd_isa_devices.cpp +++ b/renderdoc/driver/ihv/amd/amd_isa_devices.cpp @@ -54,10 +54,13 @@ const GCNISA::asic GCNISA::asicInfo[] = { // Arctic Islands {"GCN (gfx900)", "900", FAMILY_AI, AI_GD_P0, "gfx900"}, {"GCN (gfx902)", "902", FAMILY_AI, AI_GD_P0, "gfx902"}, - {"GCN (Vega 20)", "906", FAMILY_AI, AI_VEGA20_P_A0, "gfx906"}, + {"GCN (gfx906)", "906", FAMILY_AI, AI_VEGA20_P_A0, "gfx906"}, // Navi - {"RDNA (Navi 10)", "1010", FAMILY_NV, NV_NAVI10_P_A0, "gfx1010"}, - {"RDNA (Navi 14)", "1012", FAMILY_NV, NV_NAVI14_M_A0, "gfx1012"}, + {"RDNA (gfx1010)", "1010", FAMILY_NV, NV_NAVI10_P_A0, "gfx1010"}, + {"RDNA (gfx1012)", "1012", FAMILY_NV, NV_NAVI14_M_A0, "gfx1012"}, + {"RDNA2 (gfx1030)", "1030", FAMILY_NV, NV_NAVI21_P_A0, "gfx1030"}, + {"RDNA2 (gfx1031)", "1031", FAMILY_NV, NV_NAVI22_P_A0, "gfx1031"}, + {"RDNA2 (gfx1032)", "1032", FAMILY_NV, NV_NAVI23_P_A0, "gfx1032"}, }; RDCCOMPILE_ASSERT(ARRAY_COUNT(GCNISA::asicInfo) == GCNISA::asicCount, "Mismatched array count"); diff --git a/renderdoc/driver/ihv/amd/amd_isa_devices.h b/renderdoc/driver/ihv/amd/amd_isa_devices.h index f2ad72599..87460c115 100644 --- a/renderdoc/driver/ihv/amd/amd_isa_devices.h +++ b/renderdoc/driver/ihv/amd/amd_isa_devices.h @@ -35,7 +35,8 @@ struct asic const char *targetName; }; -const int asicCount = 26; +const int legacyAsicCount = 20; +const int asicCount = 29; extern const asic asicInfo[]; }; // namespace GCNISA diff --git a/renderdoc/driver/ihv/amd/official/RGA/Common/AsicReg/devices.h b/renderdoc/driver/ihv/amd/official/RGA/Common/AsicReg/devices.h index 392dd0346..7e527bf25 100644 --- a/renderdoc/driver/ihv/amd/official/RGA/Common/AsicReg/devices.h +++ b/renderdoc/driver/ihv/amd/official/RGA/Common/AsicReg/devices.h @@ -109,7 +109,11 @@ enum { enum { NV_NAVI10_P_A0 = 1, - NV_NAVI14_M_A0 = 20 + NV_NAVI12_P_A0 = 10, + NV_NAVI14_M_A0 = 20, + NV_NAVI21_P_A0 = 40, + NV_NAVI22_P_A0 = 50, + NV_NAVI23_P_A0 = 60, }; enum { diff --git a/util/test/tests/D3D11/D3D11_Shader_ISA.py b/util/test/tests/D3D11/D3D11_Shader_ISA.py index a194f97c2..b75917699 100644 --- a/util/test/tests/D3D11/D3D11_Shader_ISA.py +++ b/util/test/tests/D3D11/D3D11_Shader_ISA.py @@ -52,11 +52,11 @@ class D3D11_Shader_ISA(rdtest.TestCase): raise rdtest.TestFailureException( "AMDIL ISA doesn't contain '{}' as expected: {}".format(fragment, disasm)) - if 'RDNA (Navi 10)' not in isas: + if 'RDNA (gfx1010)' not in isas: raise rdtest.TestFailureException( - "RDNA (Navi 10) is not an available disassembly target. Are you missing plugins?") + "RDNA (gfx1010) is not an available disassembly target. Are you missing plugins?") - disasm: str = self.controller.DisassembleShader(pipe.GetGraphicsPipelineObject(), refl, 'RDNA (Navi 10)') + disasm: str = self.controller.DisassembleShader(pipe.GetGraphicsPipelineObject(), refl, 'RDNA (gfx1010)') expected = [ 'asic(GFX10)', diff --git a/util/test/tests/D3D12/D3D12_Shader_ISA.py b/util/test/tests/D3D12/D3D12_Shader_ISA.py index e7b852f4f..8653f9080 100644 --- a/util/test/tests/D3D12/D3D12_Shader_ISA.py +++ b/util/test/tests/D3D12/D3D12_Shader_ISA.py @@ -52,11 +52,11 @@ class D3D12_Shader_ISA(rdtest.TestCase): raise rdtest.TestFailureException( "AMDIL ISA doesn't contain '{}' as expected: {}".format(fragment, disasm)) - if 'RDNA (Navi 10)' not in isas: + if 'RDNA (gfx1010)' not in isas: raise rdtest.TestFailureException( - "RDNA (Navi 10) is not an available disassembly target. Are you missing plugins?") + "RDNA (gfx1010) is not an available disassembly target. Are you missing plugins?") - disasm: str = self.controller.DisassembleShader(pipe.GetGraphicsPipelineObject(), refl, 'RDNA (Navi 10)') + disasm: str = self.controller.DisassembleShader(pipe.GetGraphicsPipelineObject(), refl, 'RDNA (gfx1010)') expected = [ 'asic(GFX10)', diff --git a/util/test/tests/GL/GL_Shader_ISA.py b/util/test/tests/GL/GL_Shader_ISA.py index e8b58281c..6691ef49b 100644 --- a/util/test/tests/GL/GL_Shader_ISA.py +++ b/util/test/tests/GL/GL_Shader_ISA.py @@ -61,11 +61,11 @@ class GL_Shader_ISA(rdtest.TestCase): raise rdtest.TestFailureException( "AMDIL ISA doesn't contain '{}' as expected: {}".format(fragment, disasm)) - if 'RDNA (Navi 10)' not in isas: + if 'RDNA (gfx1010)' not in isas: raise rdtest.TestFailureException( - "RDNA (Navi 10) is not an available disassembly target. Are you missing plugins?") + "RDNA (gfx1010) is not an available disassembly target. Are you missing plugins?") - disasm: str = self.controller.DisassembleShader(pipe.GetGraphicsPipelineObject(), refl, 'RDNA (Navi 10)') + disasm: str = self.controller.DisassembleShader(pipe.GetGraphicsPipelineObject(), refl, 'RDNA (gfx1010)') expected = [ 'asic(GFX10)', diff --git a/util/test/tests/Vulkan/VK_Shader_ISA.py b/util/test/tests/Vulkan/VK_Shader_ISA.py index 48484ee44..1f0ed8a82 100644 --- a/util/test/tests/Vulkan/VK_Shader_ISA.py +++ b/util/test/tests/Vulkan/VK_Shader_ISA.py @@ -52,11 +52,11 @@ class VK_Shader_ISA(rdtest.TestCase): raise rdtest.TestFailureException( "AMDIL ISA doesn't contain '{}' as expected: {}".format(fragment, disasm)) - if 'RDNA (Navi 10)' not in isas: + if 'RDNA (gfx1010)' not in isas: raise rdtest.TestFailureException( - "RDNA (Navi 10) is not an available disassembly target. Are you missing plugins?") + "RDNA (gfx1010) is not an available disassembly target. Are you missing plugins?") - disasm: str = self.controller.DisassembleShader(pipe.GetGraphicsPipelineObject(), refl, 'RDNA (Navi 10)') + disasm: str = self.controller.DisassembleShader(pipe.GetGraphicsPipelineObject(), refl, 'RDNA (gfx1010)') expected = [ 'asic(GFX10)',