[Mesa-dev] [PATCH 2/4] glx/dri3: Implement the flush_swapbuffers method
Thomas Hellstrom
thellstrom at vmware.com
Wed Aug 2 17:54:39 UTC 2017
On 08/02/2017 06:31 PM, Emil Velikov wrote:
> On 2 August 2017 at 13:23, Thomas Hellstrom <thellstrom at vmware.com> wrote:
>> Provide a dri3 implementation for the image loader extension method.
>>
>> Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
>> ---
>> 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 <emil.velikov at collabora.com>
>
> -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
More information about the mesa-dev
mailing list