From: Rémi Bernon rbernon@codeweavers.com
Initializing llvmpipe device involves creating a lot of threads, which consume large amount of address space which will never be freed.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58833 --- dlls/win32u/opengl.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/dlls/win32u/opengl.c b/dlls/win32u/opengl.c index 90c975df0a5..e083d26a6ff 100644 --- a/dlls/win32u/opengl.c +++ b/dlls/win32u/opengl.c @@ -990,6 +990,11 @@ static void init_egl_devices( struct opengl_funcs *funcs ) for (int i = 0; i < count; i++) { if (devices[i] == display_egl.device) continue; + + extensions = funcs->p_eglQueryDeviceStringEXT( devices[i], EGL_EXTENSIONS ); + /* Assume that all devices without EGL_MESA_device_software are accelerated. */ + if (has_extension( extensions, "EGL_MESA_device_software" )) continue; + if (!(egl = calloc( 1, sizeof(*egl) ))) break;
TRACE( "Initializing EGL device %p\n", devices[i] );