Skip to content

Commit 23b4324

Browse files
committed
GPU (AMD): seems ADL2_Adapter_VRAMUsage_Get reports system mem usage only, not full memory usage
Because VRAMUsage reports a value which is smaller than DedicatedVRAMUsage
1 parent 9dfb404 commit 23b4324

1 file changed

Lines changed: 14 additions & 19 deletions

File tree

src/detection/gpu/gpu_amd.c

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -188,31 +188,26 @@ const char* ffDetectAmdGpuInfo(const FFGpuDriverCondition* cond, FFGpuDriverResu
188188
FF_DEBUG("ADL2_Adapter_DedicatedVRAMUsage_Get returned %s (%d), usage: %d MB",
189189
ffAdlStatusToString(status), status, vramUsage);
190190

191-
if (status == ADL_OK) {
191+
if (status == ADL_OK && vramUsage >= 0) {
192192
result.memory->used = (uint64_t) vramUsage * 1024 * 1024;
193193
FF_DEBUG("Dedicated VRAM usage: %llu bytes (%d MB)", result.memory->used, vramUsage);
194194
} else {
195195
FF_DEBUG("Failed to get dedicated VRAM usage");
196196
}
197+
}
197198

198-
if (result.sharedMemory)
199-
{
200-
vramUsage = 0;
201-
status = adlData.ffADL2_Adapter_VRAMUsage_Get(adlData.apiHandle, device->iAdapterIndex, &vramUsage);
202-
FF_DEBUG("ADL2_Adapter_VRAMUsage_Get returned %s (%d), usage: %d MB",
203-
ffAdlStatusToString(status), status, vramUsage);
204-
205-
if (status == ADL_OK) {
206-
uint64_t totalUsage = (uint64_t) vramUsage * 1024 * 1024;
207-
result.sharedMemory->used = totalUsage;
208-
// If we have dedicated VRAM usage, subtract it from the total
209-
if (result.memory->used != FF_GPU_VMEM_SIZE_UNSET)
210-
result.sharedMemory->used -= result.memory->used;
211-
FF_DEBUG("Total VRAM usage: %llu bytes (%llu MB), Shared VRAM usage: %llu bytes (%llu MB)",
212-
totalUsage, totalUsage / (1024 * 1024), result.sharedMemory->used, result.sharedMemory->used / (1024 * 1024));
213-
} else {
214-
FF_DEBUG("Failed to get total VRAM usage");
215-
}
199+
if (result.sharedMemory)
200+
{
201+
int vramUsage = 0;
202+
int status = adlData.ffADL2_Adapter_VRAMUsage_Get(adlData.apiHandle, device->iAdapterIndex, &vramUsage);
203+
FF_DEBUG("ADL2_Adapter_VRAMUsage_Get returned %s (%d), usage: %d MB",
204+
ffAdlStatusToString(status), status, vramUsage);
205+
206+
if (status == ADL_OK && vramUsage >= 0) {
207+
result.sharedMemory->used = (uint64_t) vramUsage * 1024 * 1024;
208+
FF_DEBUG("Shared VRAM usage: %llu bytes (%d MB)", result.sharedMemory->used, vramUsage);
209+
} else {
210+
FF_DEBUG("Failed to get total VRAM usage");
216211
}
217212
}
218213

0 commit comments

Comments
 (0)