mirror of https://gitlab.freedesktop.org/mesa/mesa
egl_dri2: Lower __DRI_IMAGE version requirement back to 1
We check the extension version manually instead and verify that we have the createImageFromFds function before enabling prime fd passing.
This commit is contained in:
parent
7c3d8301af
commit
1670737436
|
@ -320,7 +320,7 @@ static struct dri2_extension_match dri2_driver_extensions[] = {
|
|||
static struct dri2_extension_match dri2_core_extensions[] = {
|
||||
{ __DRI2_FLUSH, 1, offsetof(struct dri2_egl_display, flush) },
|
||||
{ __DRI_TEX_BUFFER, 2, offsetof(struct dri2_egl_display, tex_buffer) },
|
||||
{ __DRI_IMAGE, 7, offsetof(struct dri2_egl_display, image) },
|
||||
{ __DRI_IMAGE, 1, offsetof(struct dri2_egl_display, image) },
|
||||
{ NULL, 0, 0 }
|
||||
};
|
||||
|
||||
|
@ -1573,7 +1573,9 @@ dri2_bind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *disp,
|
|||
(int(*)(void *, uint32_t)) dri2_dpy->authenticate;
|
||||
|
||||
ret = drmGetCap(dri2_dpy->fd, DRM_CAP_PRIME, &cap);
|
||||
if (ret == 0 && cap == (DRM_PRIME_CAP_IMPORT | DRM_PRIME_CAP_EXPORT))
|
||||
if (ret == 0 && cap == (DRM_PRIME_CAP_IMPORT | DRM_PRIME_CAP_EXPORT) &&
|
||||
dri2_dpy->image->base.version >= 7 &&
|
||||
dri2_dpy->image->createImageFromFds != NULL)
|
||||
flags |= WAYLAND_DRM_PRIME;
|
||||
|
||||
dri2_dpy->wl_server_drm =
|
||||
|
|
|
@ -773,6 +773,15 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
|||
if (!dri2_create_screen(disp))
|
||||
goto cleanup_driver;
|
||||
|
||||
/* The server shouldn't advertise WL_DRM_CAPABILITY_PRIME if the driver
|
||||
* doesn't have createImageFromFds, since we're using the same driver on
|
||||
* both sides. We don't want crash if that happens anyway, so fall back to
|
||||
* gem names if we don't have prime support. */
|
||||
|
||||
if (dri2_dpy->image->base.version < 7 ||
|
||||
dri2_dpy->image->createImageFromFds == NULL)
|
||||
dri2_dpy->capabilities &= WL_DRM_CAPABILITY_PRIME;
|
||||
|
||||
types = EGL_WINDOW_BIT;
|
||||
for (i = 0; dri2_dpy->driver_configs[i]; i++) {
|
||||
config = dri2_dpy->driver_configs[i];
|
||||
|
|
Loading…
Reference in New Issue