| From 3ad757fd28b38cfb9abc8fa26625eaf4d87c0647 Mon Sep 17 00:00:00 2001 |
| From: Zach Reizner <zachr@chromium.org> |
| Date: Wed, 21 Jan 2015 13:23:58 -0800 |
| Subject: [PATCH] CHROMIUM: egl/dri2: add support for image, config query, and |
| robustness extensions |
| |
| This patch enables exposing image, config query and robustness |
| extensions if swrast driver is used, to improve feature completeness of |
| software rendering and make it usable by Freon running in a virtual |
| machine. In addition, swrast is now used as a fallback for |
| platform_surfaceless if no other driver can be used. |
| |
| BUG=chromium:394868 |
| TEST=None |
| |
| Signed-off-by: Prince Agyeman <prince.agyeman@intel.com> |
| Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> |
| Signed-off-by: James Ausmus <james.ausmus@intel.com> |
| Signed-off-by: Tomasz Figa <tfiga@chromium.org> |
| Signed-off-by: Gurchetan Singh <gurchetansingh@chromium.org> |
| --- |
| src/egl/drivers/dri2/egl_dri2.c | 1 + |
| src/egl/drivers/dri2/platform_surfaceless.c | 10 ++++++++-- |
| 2 files changed, 9 insertions(+), 2 deletions(-) |
| |
| diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c |
| index cf26242702..748a08afef 100644 |
| --- a/src/egl/drivers/dri2/egl_dri2.c |
| +++ b/src/egl/drivers/dri2/egl_dri2.c |
| @@ -432,6 +432,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_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c |
| index 1091b4febd..ab4e30410d 100644 |
| --- a/src/egl/drivers/dri2/platform_surfaceless.c |
| +++ b/src/egl/drivers/dri2/platform_surfaceless.c |
| @@ -310,8 +310,14 @@ dri2_initialize_surfaceless(_EGLDriver *drv, _EGLDisplay *disp) |
| } |
| |
| if (!driver_loaded) { |
| - err = "DRI2: failed to load driver"; |
| - goto cleanup; |
| + dri2_dpy->driver_name = strdup("swrast"); |
| + if (!dri2_load_driver_swrast(disp)) |
| + { |
| + err = "DRI2: failed to load driver"; |
| + free(dri2_dpy->driver_name); |
| + dri2_dpy->driver_name = NULL; |
| + goto cleanup; |
| + } |
| } |
| |
| dri2_dpy->loader_extensions = image_loader_extensions; |
| -- |
| 2.12.2 |
| |