On 08/02/2017 06:31 PM, Emil Velikov wrote:
On 2 August 2017 at 13:23, Thomas Hellstrom <[email protected]> wrote:
Provide a dri3 implementation for the image loader extension method.

Signed-off-by: Thomas Hellstrom <[email protected]>
---
  src/glx/dri3_glx.c | 30 +++++++++++++++++++++++++++++-
  1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c
index cc11037..64c0b9e 100644
--- a/src/glx/dri3_glx.c
+++ b/src/glx/dri3_glx.c
@@ -495,6 +495,33 @@ dri3_flush_front_buffer(__DRIdrawable *driDrawable, void 
*loaderPrivate)
     loader_dri3_wait_gl(draw);
  }

+/**
+ * Make sure all pending swapbuffers have been submitted to hardware
+ *
+ * \param driDrawable[in]  Pointer to the dri drawable whose swaps we are
+ * flushing.
+ * \param loaderPrivate[in]  Pointer to the corresponding struct
+ * loader_dri_drawable.
+ */
+static void
+dri3_flush_swap_buffers(__DRIdrawable *driDrawable, void *loaderPrivate)
+{
+   struct loader_dri3_drawable *draw = loaderPrivate;
+   struct dri3_drawable *pdraw = loader_drawable_to_dri3_drawable(draw);
+   struct dri3_screen *psc;
+
+   if (!pdraw)
+      return;
+
+   if (!pdraw->base.psc)
+      return;
+
+   psc = (struct dri3_screen *) pdraw->base.psc;
+
+   (void) __glXInitialize(psc->base.dpy);
+   loader_dri3_swapbuffer_barrier(draw);
+}
+
  static void
  dri_set_background_context(void *loaderPrivate)
  {
@@ -514,10 +541,11 @@ dri_is_thread_safe(void *loaderPrivate)
  /* The image loader extension record for DRI3
   */
  static const __DRIimageLoaderExtension imageLoaderExtension = {
-   .base = { __DRI_IMAGE_LOADER, 1 },
+   .base = { __DRI_IMAGE_LOADER, 3 },

     .getBuffers          = loader_dri3_get_buffers,
     .flushFrontBuffer    = dri3_flush_front_buffer,
I think I'll add the v2 .getCap() for posterity - as a follow-up.

The series looks great, but admittedly I'm not the biggest expert on the topic.
Perhaps Michel can take a look?

FWIW for the lot
Reviewed-by: Emil Velikov <[email protected]>

-Emil

Thanks for reviewing, Emil.

Since the remaining patches of this series don't really change anything major, and the original series was out for review for some 6 weeks I feel pretty confident pushing it.

Thanks,

Thomas


_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to