{"record":{"id":"2f527359a10ee28d","repo":"slint-ui/slint","slug":"not-implemented-2f5273","errorCode":null,"errorMessage":"not implemented","messagePattern":"not implemented","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/renderers/skia/vulkan_surface.rs","lineNumber":523,"sourceCode":"            }),\n            raw_window_handle::RawDisplayHandle::Wayland(raw_window_handle::WaylandDisplayHandle {\n                display,\n                ..\n            }),\n        ) => unsafe {\n            Surface::from_wayland(instance.clone(), display.as_ptr(), surface.as_ptr(), None)\n        },\n        (\n            raw_window_handle::RawWindowHandle::Win32(raw_window_handle::Win32WindowHandle {\n                hwnd,\n                hinstance,\n                ..\n            }),\n            _,\n        ) => unsafe {\n            Surface::from_win32(instance.clone(), hinstance.unwrap().get(), hwnd.get(), None)\n        },\n        _ => unimplemented!(),\n    }\n}\n","sourceCodeStart":505,"sourceCodeEnd":526,"githubUrl":"https://github.com/slint-ui/slint/blob/a9ea814a5813e7460fa1a867924872095a4d678d/internal/renderers/skia/vulkan_surface.rs#L505-L526","documentation":"When the Skia renderer runs on Vulkan, creating a surface matches the window's raw-window-handle against implemented pairs: Android, Wayland and Win32 are handled. Any other combination — X11, macOS AppKit, etc. — reaches `_ => unimplemented!()` and panics during surface creation, i.e. as soon as a window is shown.","triggerScenarios":"Enabling the Skia Vulkan path (renderer-skia built with the vulkan feature, or a SLINT_RENDERER selection resolving to skia-vulkan) on X11 or macOS, then creating/showing a window — the (RawWindowHandle, RawDisplayHandle) pair is not Wayland/Win32/Android so surface creation panics.","commonSituations":"Forcing Vulkan on an X11 desktop for performance testing; a renderer env var or feature set copied from Wayland docs; CI runners defaulting to X11 while the build hard-enables vulkan.","solutions":["Don't select the Vulkan Skia renderer on X11/macOS — use the default femtovg/skia GL renderer.","Run the app under a real Wayland session if the Vulkan path is required.","Unset SLINT_RENDERER / remove the vulkan feature that forces this path.","Longer term, contribute an X11 arm (Surface::from_xlib) upstream."],"exampleFix":"# before\nSLINT_RENDERER=skia-vulkan ./myapp   # on X11/macOS -> panic in vulkan_surface\n\n# after\nunset SLINT_RENDERER\n./myapp                               # default GL renderer","handlingStrategy":"validation","validationCode":"// Only allow the Vulkan Skia renderer on supported window systems, before slint::run_event_loop()\n#[cfg(all(feature = \"renderer-skia-vulkan\", not(any(target_os = \"android\", target_os = \"windows\"))))]\n{\n    let is_wayland = std::env::var(\"WAYLAND_DISPLAY\").is_ok();\n    if !is_wayland {\n        eprintln!(\"skia-vulkan requires Wayland/Win32/Android window handles; falling back to default renderer\");\n        std::env::remove_var(\"SLINT_RENDERER\");\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Default to the GL (femtovag/skia-gl) renderer; enable the Vulkan path only on Wayland/Win32/Android.","Check WAYLAND_DISPLAY before launching Vulkan-rendered builds.","Do not hard-code SLINT_RENDERER=skia-vulkan in shared launcher scripts."],"tags":["skia","vulkan","renderer","window-handle","panic"],"backgroundTag":"unsupported-vulkan-surface","analyzedSha":"a9ea814a5813e7460fa1a867924872095a4d678d","analyzedAt":"2026-08-16T22:39:12.830Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}