summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolai Hähnle <nicolai.haehnle@amd.com>2017-06-30 10:52:48 +0200
committerNicolai Hähnle <nicolai.haehnle@amd.com>2017-07-13 13:27:44 +0200
commit950a7ce09ec8a893435c7afb738a7f65dfa89f4c (patch)
tree7a3ef6b9a2c42091c70adc77766c1256ea90e724
parent8ea0cdc9e84cc560856f24dd717bd1e6003ecace (diff)
dri: define a version 2 of the DRI_ConfigOptions extension
The new function is defined to return a malloc'ed pointer. In the following patches, this helps avoid leaking library handles when pipe drivers are linked dynamically. It also allows us to generate the XML string on the fly in the future.
-rw-r--r--include/GL/internal/dri_interface.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index 1893d4c4a5..8ddd8aefb0 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -1616,13 +1616,29 @@ struct __DRIrobustnessExtensionRec {
*
* This extension provides the XML string containing driver options for use by
* the loader in supporting the driconf application.
+ *
+ * v2:
+ * - Add the getXml getter function which allows the driver more flexibility in
+ * how the XML is provided.
+ * - Deprecate the direct xml pointer. It is only provided as a fallback for
+ * older versions of libGL and must not be used by clients that are aware of
+ * the newer version. Future driver versions may set it to NULL.
*/
#define __DRI_CONFIG_OPTIONS "DRI_ConfigOptions"
-#define __DRI_CONFIG_OPTIONS_VERSION 1
+#define __DRI_CONFIG_OPTIONS_VERSION 2
typedef struct __DRIconfigOptionsExtensionRec {
__DRIextension base;
- const char *xml;
+ const char *xml; /**< deprecated since v2, use getXml instead */
+
+ /**
+ * Get an XML string that describes available driver options for use by a
+ * config application.
+ *
+ * The returned string must be heap-allocated. The caller is responsible for
+ * freeing it.
+ */
+ char *(*getXml)(const char *driver_name);
} __DRIconfigOptionsExtension;
/**