[Mesa-dev] [PATCH] gbm: set up the interop extension for egl/drm
Alex Deucher
alexdeucher at gmail.com
Mon Oct 31 16:38:56 UTC 2016
On Sat, Oct 29, 2016 at 7:18 AM, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
Acked-by: Alex Deucher <alexander.deucher at amd.com>
>
> breaking libgbm -> libEGL ABI?
> ---
> src/egl/drivers/dri2/platform_drm.c | 1 +
> src/gbm/backends/dri/gbm_dri.c | 1 +
> src/gbm/backends/dri/gbm_driint.h | 1 +
> 3 files changed, 3 insertions(+)
>
> diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c
> index ea1a7f1..2099314 100644
> --- a/src/egl/drivers/dri2/platform_drm.c
> +++ b/src/egl/drivers/dri2/platform_drm.c
> @@ -705,20 +705,21 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
> dri2_dpy->driver_name = strdup(dri2_dpy->gbm_dri->base.driver_name);
>
> dri2_dpy->dri_screen = dri2_dpy->gbm_dri->screen;
> dri2_dpy->core = dri2_dpy->gbm_dri->core;
> dri2_dpy->dri2 = dri2_dpy->gbm_dri->dri2;
> dri2_dpy->fence = dri2_dpy->gbm_dri->fence;
> dri2_dpy->image = dri2_dpy->gbm_dri->image;
> dri2_dpy->flush = dri2_dpy->gbm_dri->flush;
> dri2_dpy->swrast = dri2_dpy->gbm_dri->swrast;
> dri2_dpy->driver_configs = dri2_dpy->gbm_dri->driver_configs;
> + dri2_dpy->interop = dri2_dpy->gbm_dri->interop;
>
> dri2_dpy->gbm_dri->lookup_image = dri2_lookup_egl_image;
> dri2_dpy->gbm_dri->lookup_user_data = disp;
>
> dri2_dpy->gbm_dri->get_buffers = dri2_drm_get_buffers;
> dri2_dpy->gbm_dri->flush_front_buffer = dri2_drm_flush_front_buffer;
> dri2_dpy->gbm_dri->get_buffers_with_format = dri2_drm_get_buffers_with_format;
> dri2_dpy->gbm_dri->image_get_buffers = dri2_drm_image_get_buffers;
> dri2_dpy->gbm_dri->swrast_put_image2 = swrast_put_image2;
> dri2_dpy->gbm_dri->swrast_get_image = swrast_get_image;
> diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
> index 51c4117..5cd7318 100644
> --- a/src/gbm/backends/dri/gbm_dri.c
> +++ b/src/gbm/backends/dri/gbm_dri.c
> @@ -239,20 +239,21 @@ struct dri_extension_match {
> const char *name;
> int version;
> int offset;
> int optional;
> };
>
> static struct dri_extension_match dri_core_extensions[] = {
> { __DRI2_FLUSH, 1, offsetof(struct gbm_dri_device, flush) },
> { __DRI_IMAGE, 1, offsetof(struct gbm_dri_device, image) },
> { __DRI2_FENCE, 2, offsetof(struct gbm_dri_device, fence), 1 },
> + { __DRI2_INTEROP, 1, offsetof(struct gbm_dri_device, interop), 1 },
> { NULL, 0, 0 }
> };
>
> static struct dri_extension_match gbm_dri_device_extensions[] = {
> { __DRI_CORE, 1, offsetof(struct gbm_dri_device, core) },
> { __DRI_DRI2, 1, offsetof(struct gbm_dri_device, dri2) },
> { NULL, 0, 0 }
> };
>
> static struct dri_extension_match gbm_swrast_device_extensions[] = {
> diff --git a/src/gbm/backends/dri/gbm_driint.h b/src/gbm/backends/dri/gbm_driint.h
> index 26376ef..29a8ec2 100644
> --- a/src/gbm/backends/dri/gbm_driint.h
> +++ b/src/gbm/backends/dri/gbm_driint.h
> @@ -51,20 +51,21 @@ struct gbm_dri_device {
> __DRIcontext *context;
> mtx_t mutex;
>
> const __DRIcoreExtension *core;
> const __DRIdri2Extension *dri2;
> const __DRI2fenceExtension *fence;
> const __DRIimageExtension *image;
> const __DRIswrastExtension *swrast;
> const __DRI2flushExtension *flush;
> const __DRIdri2LoaderExtension *loader;
> + const __DRI2interopExtension *interop;
>
> const __DRIconfig **driver_configs;
> const __DRIextension **loader_extensions;
> const __DRIextension **driver_extensions;
>
> __DRIimage *(*lookup_image)(__DRIscreen *screen, void *image, void *data);
> void *lookup_user_data;
>
> __DRIbuffer *(*get_buffers)(__DRIdrawable * driDrawable,
> int *width, int *height,
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list