| From e0ded637ccc5a17437585b3417ce2d5a9eb30ffa Mon Sep 17 00:00:00 2001 |
| From: David Stevens <stevensd@chromium.org> |
| Date: Thu, 26 Nov 2020 14:03:16 +0900 |
| Subject: [PATCH 09/11] dri: add image cleanup callback to loader extensions |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| The callback may be used by dri drivers to perform cleanup when images |
| are destroyed. It is added to the dri2 and image loader extensions. |
| |
| Signed-off-by: David Stevens <stevensd@chromium.org> |
| Reviewed-by: Tapani Pรคlli <tapani.palli@intel.com> |
| Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7805> |
| --- |
| include/GL/internal/dri_interface.h | 22 ++++++++++++++++++++-- |
| 1 file changed, 20 insertions(+), 2 deletions(-) |
| |
| diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h |
| index e40106575c0..69969eebaa6 100644 |
| --- a/include/GL/internal/dri_interface.h |
| +++ b/include/GL/internal/dri_interface.h |
| @@ -1106,7 +1106,7 @@ struct __DRIbufferRec { |
| }; |
| |
| #define __DRI_DRI2_LOADER "DRI_DRI2Loader" |
| -#define __DRI_DRI2_LOADER_VERSION 4 |
| +#define __DRI_DRI2_LOADER_VERSION 5 |
| |
| enum dri_loader_cap { |
| /* Whether the loader handles RGBA channel ordering correctly. If not, |
| @@ -1177,6 +1177,15 @@ struct __DRIdri2LoaderExtensionRec { |
| * \since 4 |
| */ |
| unsigned (*getCapability)(void *loaderPrivate, enum dri_loader_cap cap); |
| + |
| + /** |
| + * Clean up any loader state associated with an image. |
| + * |
| + * \param loaderPrivate Loader's private data that was previously passed |
| + * into a __DRIimageExtensionRec::createImage function |
| + * \since 5 |
| + */ |
| + void (*destroyLoaderImageState)(void *loaderPrivate); |
| }; |
| |
| /** |
| @@ -2003,7 +2012,7 @@ struct __DRIimageList { |
| }; |
| |
| #define __DRI_IMAGE_LOADER "DRI_IMAGE_LOADER" |
| -#define __DRI_IMAGE_LOADER_VERSION 3 |
| +#define __DRI_IMAGE_LOADER_VERSION 4 |
| |
| struct __DRIimageLoaderExtensionRec { |
| __DRIextension base; |
| @@ -2062,6 +2071,15 @@ struct __DRIimageLoaderExtensionRec { |
| * \since 3 |
| */ |
| void (*flushSwapBuffers)(__DRIdrawable *driDrawable, void *loaderPrivate); |
| + |
| + /** |
| + * Clean up any loader state associated with an image. |
| + * |
| + * \param loaderPrivate Loader's private data that was previously passed |
| + * into a __DRIimageExtensionRec::createImage function |
| + * \since 4 |
| + */ |
| + void (*destroyLoaderImageState)(void *loaderPrivate); |
| }; |
| |
| /** |
| -- |
| 2.29.2.684.gfbc64c5ab5-goog |
| |