Проблема с обнаружением памяти видеокарты

Я хочу обнаружить видеопамять с помощью Nvidia API называется NvAPI, Проблема в том, что dedicatedVideoMemory всегда показывает 0, но должно отображать 4096 МБ.

Код:

NvAPI_Status result;
result = NvAPI_Initialize();

if (result != NVAPI_OK) {
    NvAPI_ShortString string;
    NvAPI_GetErrorMessage(result, string);
    printf("NVAPI NvAPI_Initialize: %s\n", string);
}

NvU32 cnt;
NvPhysicalGpuHandle phys;
result = NvAPI_EnumPhysicalGPUs(&phys, &cnt);

if (result != NVAPI_OK) {
    NvAPI_ShortString string;
    NvAPI_GetErrorMessage(result, string);
    printf("NVAPI NvAPI_EnumPhysicalGPUs: %s\n", string);
}

NV_DISPLAY_DRIVER_MEMORY_INFO nvidiaDisplayDriverMemory;
NvAPI_GPU_GetMemoryInfo(phys, &nvidiaDisplayDriverMemory);

qDebug() << nvidiaDisplayDriverMemory.dedicatedVideoMemory;
NvAPI_Unload();

Снимок экрана (Панель управления NVIDIA):

Снимок экрана (Панель управления NVIDIA

Вопросы:

  1. Как это исправить?
  2. Как получить правильное определение графической памяти на AMD/Intel?

Заранее спасибо за помощь.

Обновить:

 NvAPI_ShortString ver;
 NvAPI_GetInterfaceVersionString(ver);
 printf("NVAPI Version: %s\n", ver);

 NvAPI_ShortString name;
 NvAPI_GPU_GetFullName(phys, name);

 if (result != NVAPI_OK) {
     NvAPI_ShortString string;
     NvAPI_GetErrorMessage(result, string);
     printf("NVAPI NvAPI_GPU_GetFullName: %s\n", string); // emit signal - error
 }

    printf("Name: %s\n", name);

Теперь, когда я добавляю, чтобы проверить версию и название видеокарты, она отображает nvidiaDisplayDriverMemory.dedicatedVideoMemory как 4096, но только в Qt Режим отладки, когда я попадаю в режим выпуска, он отображает 0. Есть идеи? Благодарю.

0 ответов

Другие вопросы по тегам