blob: 89c2abe5a047c9295bf29af8f7e41452a8b49067 [file] [log] [blame]
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