diff options
author | Simon Ser <contact@emersion.fr> | 2020-12-14 18:32:47 +0100 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-05-19 16:54:19 +0000 |
commit | afd8b2f498a417de6ecdbd13045d97c9ecf4391b (patch) | |
tree | dd650fdca9e3f5e79a624dc5d224524c50e1601d /include | |
parent | 8fd5b16efc60ad666b05ec745109d0a482b6157b (diff) |
dri: add createImageWithModifiers2 interface
With the addition of createImageWithModifiers usage flags were
dropped, as it was believed at the time that modifers will be a
full replacement for the usage flags. This has turned out to be
untrue, as modifiers are not able to describe buffer placement.
Add a new version of the interface, that allows to specifiy
use flags in addition to the modifier.
Signed-off-by: Simon Ser <contact@emersion.fr>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106>
Diffstat (limited to 'include')
-rw-r--r-- | include/GL/internal/dri_interface.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index 9b85e67ce49..a7d9903f94e 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -1328,7 +1328,7 @@ struct __DRIdri2ExtensionRec { * extensions. */ #define __DRI_IMAGE "DRI_IMAGE" -#define __DRI_IMAGE_VERSION 18 +#define __DRI_IMAGE_VERSION 19 /** * These formats correspond to the similarly named MESA_FORMAT_* @@ -1803,6 +1803,28 @@ struct __DRIimageExtensionRec { uint32_t flags, unsigned *error, void *loaderPrivate); + + /** + * Creates an image with implementation's favorite modifiers and the + * provided usage flags. + * + * This acts like createImageWithModifiers except usage is also specified. + * + * The created image should be destroyed with destroyImage(). + * + * Returns the new DRIimage. The chosen modifier can be obtained later on + * and passed back to things like the kernel's AddFB2 interface. + * + * \sa __DRIimageRec::createImage + * + * \since 19 + */ + __DRIimage *(*createImageWithModifiers2)(__DRIscreen *screen, + int width, int height, int format, + const uint64_t *modifiers, + const unsigned int modifier_count, + unsigned int use, + void *loaderPrivate); }; |