diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c index c99dbc8d4cd..bb1bcd65f78 100644 --- a/src/amd/common/ac_gpu_info.c +++ b/src/amd/common/ac_gpu_info.c @@ -2008,3 +2008,26 @@ void ac_get_task_info(struct radeon_info *info, task_info->payload_ring_offset = ALIGN(task_info->draw_ring_offset + draw_ring_bytes, 256); task_info->bo_size_bytes = task_info->payload_ring_offset + payload_ring_bytes; } + +uint32_t ac_memory_ops_per_clock(uint32_t vram_type) +{ + switch (vram_type) { + case AMDGPU_VRAM_TYPE_UNKNOWN: + return 0; + case AMDGPU_VRAM_TYPE_DDR2: + case AMDGPU_VRAM_TYPE_DDR3: + case AMDGPU_VRAM_TYPE_DDR4: + case AMDGPU_VRAM_TYPE_HBM: + return 2; + case AMDGPU_VRAM_TYPE_DDR5: + case AMDGPU_VRAM_TYPE_GDDR5: + return 4; + case AMDGPU_VRAM_TYPE_GDDR6: + return 16; + case AMDGPU_VRAM_TYPE_GDDR1: + case AMDGPU_VRAM_TYPE_GDDR3: + case AMDGPU_VRAM_TYPE_GDDR4: + default: + unreachable("Invalid vram type"); + } +} diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h index 98f85c555c2..e89c4ebe2ea 100644 --- a/src/amd/common/ac_gpu_info.h +++ b/src/amd/common/ac_gpu_info.h @@ -33,6 +33,23 @@ #include #include +#ifdef _WIN32 +#define AMDGPU_VRAM_TYPE_UNKNOWN 0 +#define AMDGPU_VRAM_TYPE_GDDR1 1 +#define AMDGPU_VRAM_TYPE_DDR2 2 +#define AMDGPU_VRAM_TYPE_GDDR3 3 +#define AMDGPU_VRAM_TYPE_GDDR4 4 +#define AMDGPU_VRAM_TYPE_GDDR5 5 +#define AMDGPU_VRAM_TYPE_HBM 6 +#define AMDGPU_VRAM_TYPE_DDR3 7 +#define AMDGPU_VRAM_TYPE_DDR4 8 +#define AMDGPU_VRAM_TYPE_GDDR6 9 +#define AMDGPU_VRAM_TYPE_DDR5 10 +#else +#include "drm-uapi/amdgpu_drm.h" +#endif +#include "util/macros.h" + #ifdef __cplusplus extern "C" { #endif @@ -310,6 +327,8 @@ struct ac_task_info { void ac_get_task_info(struct radeon_info *info, struct ac_task_info *task_info); +uint32_t ac_memory_ops_per_clock(uint32_t vram_type); + #ifdef __cplusplus } #endif diff --git a/src/amd/common/ac_rgp.c b/src/amd/common/ac_rgp.c index e0180b6e1c6..12bc05fe347 100644 --- a/src/amd/common/ac_rgp.c +++ b/src/amd/common/ac_rgp.c @@ -32,21 +32,6 @@ #include "ac_spm.h" #include "ac_sqtt.h" #include "ac_gpu_info.h" -#ifdef _WIN32 -#define AMDGPU_VRAM_TYPE_UNKNOWN 0 -#define AMDGPU_VRAM_TYPE_GDDR1 1 -#define AMDGPU_VRAM_TYPE_DDR2 2 -#define AMDGPU_VRAM_TYPE_GDDR3 3 -#define AMDGPU_VRAM_TYPE_GDDR4 4 -#define AMDGPU_VRAM_TYPE_GDDR5 5 -#define AMDGPU_VRAM_TYPE_HBM 6 -#define AMDGPU_VRAM_TYPE_DDR3 7 -#define AMDGPU_VRAM_TYPE_DDR4 8 -#define AMDGPU_VRAM_TYPE_GDDR6 9 -#define AMDGPU_VRAM_TYPE_DDR5 10 -#else -#include "drm-uapi/amdgpu_drm.h" -#endif #include #include @@ -405,29 +390,6 @@ static enum sqtt_memory_type ac_vram_type_to_sqtt_memory_type(uint32_t vram_type } } -static uint32_t ac_memory_ops_per_clock(uint32_t vram_type) -{ - switch (vram_type) { - case AMDGPU_VRAM_TYPE_UNKNOWN: - return 0; - case AMDGPU_VRAM_TYPE_DDR2: - case AMDGPU_VRAM_TYPE_DDR3: - case AMDGPU_VRAM_TYPE_DDR4: - case AMDGPU_VRAM_TYPE_HBM: - return 2; - case AMDGPU_VRAM_TYPE_DDR5: - case AMDGPU_VRAM_TYPE_GDDR5: - return 4; - case AMDGPU_VRAM_TYPE_GDDR6: - return 16; - case AMDGPU_VRAM_TYPE_GDDR1: - case AMDGPU_VRAM_TYPE_GDDR3: - case AMDGPU_VRAM_TYPE_GDDR4: - default: - unreachable("Invalid vram type"); - } -} - static void ac_sqtt_fill_asic_info(struct radeon_info *rad_info, struct sqtt_file_chunk_asic_info *chunk) {