FindProcShort (wglDXLockObjectsNV);
FindProcShort (wglDXUnlockObjectsNV);
}
+ if (CheckExtension (aWglExts, "WGL_AMD_gpu_association"))
+ {
+ FindProcShort (wglGetGPUIDsAMD);
+ FindProcShort (wglGetGPUInfoAMD);
+ FindProcShort (wglGetContextGPUIDAMD);
+ }
}
#elif defined(__APPLE__)
//
addInfo (theDict, "Total memory", TCollection_AsciiString() + (aValue / 1024) + " MiB");
}
}
+#if defined(_WIN32)
+ else if (myFuncs->wglGetGPUInfoAMD != NULL
+ && myFuncs->wglGetContextGPUIDAMD != NULL)
+ {
+ GLuint aTotalMemMiB = 0;
+ UINT anAmdId = myFuncs->wglGetContextGPUIDAMD ((HGLRC )myGContext);
+ if (anAmdId != 0)
+ {
+ if (myFuncs->wglGetGPUInfoAMD (anAmdId, WGL_GPU_RAM_AMD, GL_UNSIGNED_INT, sizeof(aTotalMemMiB), &aTotalMemMiB) > 0)
+ {
+ addInfo (theDict, "GPU memory", TCollection_AsciiString() + (int )aTotalMemMiB + " MiB");
+ }
+ }
+ }
+#endif
#endif
#if !defined(GL_ES_VERSION_2_0) && !defined(__APPLE__) && !defined(_WIN32)
#define WGL_ACCESS_WRITE_DISCARD_NV 0x0002
#endif
+ // WGL_AMD_gpu_association
+
+#ifndef WGL_GPU_VENDOR_AMD
+ #define WGL_GPU_VENDOR_AMD 0x1F00
+ #define WGL_GPU_RENDERER_STRING_AMD 0x1F01
+ #define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
+ #define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
+ #define WGL_GPU_RAM_AMD 0x21A3
+ #define WGL_GPU_CLOCK_AMD 0x21A4
+ #define WGL_GPU_NUM_PIPES_AMD 0x21A5
+ #define WGL_GPU_NUM_SIMD_AMD 0x21A6
+ #define WGL_GPU_NUM_RB_AMD 0x21A7
+ #define WGL_GPU_NUM_SPI_AMD 0x21A8
+#endif
+
+ typedef UINT (WINAPI *wglGetGPUIDsAMD_t )(UINT theMaxCount, UINT* theIds);
+ typedef INT (WINAPI *wglGetGPUInfoAMD_t )(UINT theId, INT theProperty, GLenum theDataType, UINT theSize, void* theData);
+ typedef UINT (WINAPI *wglGetContextGPUIDAMD_t )(HGLRC theHglrc);
+ wglGetGPUIDsAMD_t wglGetGPUIDsAMD;
+ wglGetGPUInfoAMD_t wglGetGPUInfoAMD;
+ wglGetContextGPUIDAMD_t wglGetContextGPUIDAMD;
+
#elif defined(__APPLE__)
public: //! @name CGL extensions