On Tue, 25 Jun 2019 18:37:46 +0200 Boris Brezillon <boris.brezil...@collabora.com> wrote:
> From: Daniel Stone <dani...@collabora.com> > > Add a new DRI2_BufferDamage interface to support the > EGL_KHR_partial_update extension, informing the driver of an overriding > scissor region for a particular drawable. > > Based on a commit originally authored by: > Harish Krupo <harish.krupo....@intel.com> > renamed extension, retargeted at DRI drawable instead of context, > rewritten description > Oops, this patch is missing Daniel's SoB. > Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> > --- > include/GL/internal/dri_interface.h | 43 +++++++++++++++++++++++++++++ > 1 file changed, 43 insertions(+) > > diff --git a/include/GL/internal/dri_interface.h > b/include/GL/internal/dri_interface.h > index af0ee9c56670..ada78c5d53d6 100644 > --- a/include/GL/internal/dri_interface.h > +++ b/include/GL/internal/dri_interface.h > @@ -85,6 +85,7 @@ typedef struct __DRI2throttleExtensionRec > __DRI2throttleExtension; > typedef struct __DRI2fenceExtensionRec __DRI2fenceExtension; > typedef struct __DRI2interopExtensionRec __DRI2interopExtension; > typedef struct __DRI2blobExtensionRec __DRI2blobExtension; > +typedef struct __DRI2bufferDamageExtensionRec __DRI2bufferDamageExtension; > > typedef struct __DRIimageLoaderExtensionRec __DRIimageLoaderExtension; > typedef struct __DRIimageDriverExtensionRec __DRIimageDriverExtension; > @@ -488,6 +489,48 @@ struct __DRI2interopExtensionRec { > struct mesa_glinterop_export_out *out); > }; > > + > +/** > + * Extension for limiting window system back buffer rendering to user-defined > + * scissor region. > + */ > + > +#define __DRI2_BUFFER_DAMAGE "DRI2_BufferDamage" > +#define __DRI2_BUFFER_DAMAGE_VERSION 1 > + > +struct __DRI2bufferDamageExtensionRec { > + __DRIextension base; > + > + /** > + * Provides an array of rectangles representing an overriding scissor > region > + * for rendering operations performed to the specified drawable. These > + * rectangles do not replace client API scissor regions or draw > + * co-ordinates, but instead inform the driver of the overall bounds of > all > + * operations which will be issued before the next flush. > + * > + * Any rendering operations writing pixels outside this region to the > + * drawable will have an undefined effect on the entire drawable. > + * > + * This entrypoint may only be called after the drawable has been either > been > + * newly created or flushed, and before any rendering operations which > write > + * pixels to the drawable. Calling this entrypoint at any other time will > + * have an undefined effect on the entire drawable. > + * > + * Calling this entrypoint with @size 0 and @rects NULL will reset the > + * region to the buffer's full size. This entrypoint may be called once to > + * reset the region, followed by a second call with a populated region, > + * before a rendering call is made. > + * > + * Used to implement EGL_KHR_partial_update. > + * > + * \param drawable affected drawable > + * \param size number of rectangles provided > + * \param rects the array of rectangles, lower-left origin > + */ > + void (*set_damage_region)(__DRIdrawable *drawable, unsigned int nrects, > + int *rects); > +}; > + > /*@}*/ > > /** _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev