From 154f9f462bfbcb8e81862f487f231cb2f1a14ed0 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sat, 10 May 2025 20:56:59 +0800 Subject: [PATCH] GPU (Linux): detect VRAM type of AMD GPUs --- src/detection/gpu/gpu_linux.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/detection/gpu/gpu_linux.c b/src/detection/gpu/gpu_linux.c index 30528c896..560a3abf7 100644 --- a/src/detection/gpu/gpu_linux.c +++ b/src/detection/gpu/gpu_linux.c @@ -145,6 +145,29 @@ static const char* drmDetectAmdSpecific(const FFGPUOptions* options, FFGPUResult gpu->frequency = (uint32_t) (gpuInfo.max_engine_clk / 1000u); gpu->index = FF_GPU_INDEX_UNSET; gpu->type = gpuInfo.ids_flags & AMDGPU_IDS_FLAGS_FUSION ? FF_GPU_TYPE_INTEGRATED : FF_GPU_TYPE_DISCRETE; + #define FF_VRAM_CASE(x) case AMDGPU_VRAM_TYPE_ ## x: ffStrbufSetStatic(&gpu->memoryType, #x); break + switch (gpuInfo.vram_type) + { + FF_VRAM_CASE(UNKNOWN); + FF_VRAM_CASE(GDDR1); + FF_VRAM_CASE(DDR2); + FF_VRAM_CASE(GDDR3); + FF_VRAM_CASE(GDDR4); + FF_VRAM_CASE(GDDR5); + FF_VRAM_CASE(HBM); + FF_VRAM_CASE(DDR3); + FF_VRAM_CASE(DDR4); + FF_VRAM_CASE(GDDR6); + FF_VRAM_CASE(DDR5); + FF_VRAM_CASE(LPDDR4); + FF_VRAM_CASE(LPDDR5); + #ifdef AMDGPU_VRAM_TYPE_GDDR7 + FF_VRAM_CASE(GDDR7); + #endif + default: + ffStrbufAppendF(&gpu->memoryType, "Unknown (%u)", gpuInfo.vram_type); + break; + } struct amdgpu_heap_info heapInfo; if (ffamdgpu_query_heap_info(handle, AMDGPU_GEM_DOMAIN_VRAM, 0, &heapInfo) >= 0)