From dd37ae16fc47cd60fd2de2b93b9d2d25211d47c1 Mon Sep 17 00:00:00 2001 From: Matija Kecman Date: Tue, 19 May 2026 14:27:26 -0700 Subject: [PATCH] Fix studio python samples when running on CRD * Changed window.cc to not pass `SDL_WINDOW_OPENGL` for headless opengl graphics modes since this requests a [GLX visual](https://tronche.com/gui/x/xlib/window/visual-types.html#Visual) but CRD's virtual X11 display has no GLX visuals causing window creation to fail with "Couldn't find matching GLX visual". * Changed `TryLoadEgl` so it fails if `eglBindAPI(EGL_OPENGL_API)` does not return true, causing `CreateFilamentPlatform` to fallback to OSMesa on CRD. PiperOrigin-RevId: 918029935 Change-Id: Id88338811949b1402578de19bc4d31f4ee1783c1 --- src/experimental/platform/hal/window.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/experimental/platform/hal/window.cc b/src/experimental/platform/hal/window.cc index 4d481b15..c7e55a9a 100644 --- a/src/experimental/platform/hal/window.cc +++ b/src/experimental/platform/hal/window.cc @@ -104,7 +104,9 @@ Window::Window(std::string_view title, int width, int height, Config config) } int window_flags = SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI; - if (IsVulkan(config_.gfx_mode)) { + if (IsHeadless(config_.gfx_mode)) { + // No additional window flags needed for headless rendering. + } else if (IsVulkan(config_.gfx_mode)) { window_flags |= SDL_WINDOW_VULKAN; } else if (IsWebGl(config_.gfx_mode)) { window_flags |= SDL_WINDOW_OPENGL;