EGL_MESA_platform_xcb native window


Running the NVIDIA driver version 470.129.06 (on Debian) here. I have a problem with the EGL_MESA_platform_xcb EGL client extension that is exposed by the driver.

As far as I can tell, the NVIDIA driver expects the native window parameter in the eglCreatePlatformWindowSurfaceEXT() call to be the X11 window ID up-cast to a void-pointer, e.g.:

xcb_window_t win_id = ...;
void *native_window = (void *)(uintptr_t)win_id;

However MESA expects a pointer to the X11 window ID, e.g.:

xcb_window_t win_id = ...;
void *native_window = &win_id;

But if I do that with the NVIDIA driver, it the call just fails, returning EGL_NO_SURFACE.

For what it is worth, the MESA behaviour is consistent with the standardised EGL_EXT_platform_xcb extension as well, but the NVIDIA driver does not seem to expose EGL_EXT_platform_xcb as of yet:

To obtain an on-screen rendering surface from an X11 Window, call eglCreatePlatformWindowSurfaceEXT with a that belongs to X11 and a <native_window> that points to an xcb_window_t.

To obtain an offscreen rendering surface from an X11 Pixmap, call eglCreatePlatformPixmapSurfaceEXT with a that belongs to X11 and a <native_pixmap> that points to an xcb_pixmap_t.

Can anybody confirm that this is a bug in the NVIDIA driver?