From 06c3a086952bbe3a01d69f3579cc1da2b1f5263d Mon Sep 17 00:00:00 2001 From: scorpion81 Date: Sat, 3 Jun 2023 22:52:21 +0200 Subject: [PATCH] Return the amount of dedicated VRAM under OpenGL This is an attempt to prevent overflowing the actual VRAM on lower-end integrated devices. The former query returned a significantly higher value, for example it was above 8 GB on a steam deck, which has only a maximum UMA Framebuffer size of 4 GB. This can be set in the BIOS. --- src/video_core/renderer_opengl/gl_device.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp index 400c219814..51ed289247 100644 --- a/src/video_core/renderer_opengl/gl_device.cpp +++ b/src/video_core/renderer_opengl/gl_device.cpp @@ -286,7 +286,8 @@ void main() { u64 Device::GetCurrentDedicatedVideoMemory() const { GLint cur_avail_mem_kb = 0; - glGetIntegerv(GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX, &cur_avail_mem_kb); + // this should report the correct size of the VRAM, on integrated devices it shows the size of the UMA Framebuffer + glGetIntegerv(GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX, &cur_avail_mem_kb); return static_cast(cur_avail_mem_kb) * 1_KiB; }