From 12181b501732b0c098b90e4128dc44032d08df00 Mon Sep 17 00:00:00 2001 From: Gurchetan Singh Date: Tue, 1 Aug 2017 14:51:40 -0700 Subject: [PATCH] egl/dri2: add image extension such it's usable by swrast driver MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Otherwise, this extension is not visible to the EGL users who use the swrast driver. This will allow the swrast driver to use eglCreateImageKHR, provided the target is EGL_GL_TEXTURE_2D_KHR or EGL_GL_RENDERBUFFER_KHR. Note we still have to implement the create from render buffer path. v2: add it to optional_core_extensions instead of swrast_core_extensions, so it's not a requirement (Emil) v3: Merge egl/dri2 changes together, also add support for platform_wayland (Emil) Reviewed-by: Emil Velikov Reviewed-by: Marek Olšák (v2) --- src/egl/drivers/dri2/egl_dri2.c | 1 + src/egl/drivers/dri2/platform_wayland.c | 3 ++- src/egl/drivers/dri2/platform_x11.c | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 733659d547f..f0d1ded4083 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -435,6 +435,7 @@ static const struct dri2_extension_match optional_core_extensions[] = { { __DRI2_FENCE, 1, offsetof(struct dri2_egl_display, fence) }, { __DRI2_RENDERER_QUERY, 1, offsetof(struct dri2_egl_display, rendererQuery) }, { __DRI2_INTEROP, 1, offsetof(struct dri2_egl_display, interop) }, + { __DRI_IMAGE, 1, offsetof(struct dri2_egl_display, image) }, { NULL, 0, 0 } }; diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index 73966b7c504..a11eaedefd4 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -1883,7 +1883,7 @@ static const struct dri2_egl_display_vtbl dri2_wl_swrast_display_vtbl = { .create_pixmap_surface = dri2_wl_create_pixmap_surface, .create_pbuffer_surface = dri2_fallback_create_pbuffer_surface, .destroy_surface = dri2_wl_destroy_surface, - .create_image = dri2_fallback_create_image_khr, + .create_image = dri2_create_image_khr, .swap_buffers = dri2_wl_swrast_swap_buffers, .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage, .swap_buffers_region = dri2_fallback_swap_buffers_region, @@ -1906,6 +1906,7 @@ static const __DRIswrastLoaderExtension swrast_loader_extension = { static const __DRIextension *swrast_loader_extensions[] = { &swrast_loader_extension.base, + &image_lookup_extension.base, NULL, }; diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index 61e700f7ecb..4ce819f1c94 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -1127,7 +1127,7 @@ static const struct dri2_egl_display_vtbl dri2_x11_swrast_display_vtbl = { .create_pixmap_surface = dri2_x11_create_pixmap_surface, .create_pbuffer_surface = dri2_x11_create_pbuffer_surface, .destroy_surface = dri2_x11_destroy_surface, - .create_image = dri2_fallback_create_image_khr, + .create_image = dri2_create_image_khr, .swap_interval = dri2_fallback_swap_interval, .swap_buffers = dri2_x11_swap_buffers, .set_damage_region = dri2_fallback_set_damage_region, @@ -1172,6 +1172,7 @@ static const __DRIswrastLoaderExtension swrast_loader_extension = { static const __DRIextension *swrast_loader_extensions[] = { &swrast_loader_extension.base, + &image_lookup_extension.base, NULL, }; -- 2.30.2