diff options
author | Emma Anholt <emma@anholt.net> | 2022-11-28 12:50:59 -0800 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2022-12-05 19:26:41 +0000 |
commit | 1026d29344192755dd340d6ac13a9674189d2d61 (patch) | |
tree | 3fc33d24b56fba2676cbc639e99b2acea50ea677 /include | |
parent | 2db044d7e53d960c2d7286d0b8899ba455254475 (diff) |
dri: Introduce internal Mesa DRI driver loader extension.
All DRI loaders in Mesa (EGL, GLX, gbm) now require this ext and that the
driver come from a matching build. This will let us use Mesa-internal
types and enums across the loader-driver bounary inside of Mesa.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
LOL-YESed-by: Kristian Høgsberg <krh@bitplanet.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>
Diffstat (limited to 'include')
-rw-r--r-- | include/GL/internal/mesa_interface.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/include/GL/internal/mesa_interface.h b/include/GL/internal/mesa_interface.h new file mode 100644 index 00000000000..8e3ed9c50c6 --- /dev/null +++ b/include/GL/internal/mesa_interface.h @@ -0,0 +1,51 @@ +/* + * Copyright © 2022 Google LLC + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef MESA_INTERFACE_H +#define MESA_INTERFACE_H + +#include "dri_interface.h" + +/* Mesa-internal interface between the GLX, GBM, and EGL DRI driver loaders, and + * the gallium dri_util.c code. + */ + +typedef struct __DRImesaCoreExtensionRec __DRImesaCoreExtension; + +#define __DRI_MESA "DRI_Mesa" +#define __DRI_MESA_VERSION 1 + +/** Core struct that appears alongside __DRI_CORE for Mesa-internal usage. + * Implemented in the top-level dri/drisw/kopper extension list. + */ +struct __DRImesaCoreExtensionRec { + __DRIextension base; + + /* Version string for verifying that the DRI driver is from the same build as + * the loader. + */ +#define MESA_INTERFACE_VERSION_STRING PACKAGE_VERSION MESA_GIT_SHA1 + const char *version_string; +}; + +#endif /* MESA_INTERFACE_H */ |