dri: Avoid swapbuffer throttling in glXCopySubBufferMESA
We were supplying __DRI2_THROTTLE_SWAPBUFFER, rather than the obvious choice of __DRI2_THROTTLE_COPYSUBBUFFER. This meant that we hit the swap-based frame throttling. glXCopySubBuffer doesn't seem like it's intended to be a frame boundary, so we'd like to avoid this throttling. Tested-by: Michel Dänzer <mdaenzer@redhat.com> # DRI3 only Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
This commit is contained in:
@@ -599,7 +599,7 @@ __dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y,
|
|||||||
flags = __DRI2_FLUSH_DRAWABLE;
|
flags = __DRI2_FLUSH_DRAWABLE;
|
||||||
if (flush)
|
if (flush)
|
||||||
flags |= __DRI2_FLUSH_CONTEXT;
|
flags |= __DRI2_FLUSH_CONTEXT;
|
||||||
dri2Flush(psc, ctx, priv, flags, __DRI2_THROTTLE_SWAPBUFFER);
|
dri2Flush(psc, ctx, priv, flags, __DRI2_THROTTLE_COPYSUBBUFFER);
|
||||||
|
|
||||||
region = XFixesCreateRegion(psc->base.dpy, &xrect, 1);
|
region = XFixesCreateRegion(psc->base.dpy, &xrect, 1);
|
||||||
DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
|
DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
|
||||||
|
@@ -763,7 +763,7 @@ loader_dri3_copy_sub_buffer(struct loader_dri3_drawable *draw,
|
|||||||
|
|
||||||
if (flush)
|
if (flush)
|
||||||
flags |= __DRI2_FLUSH_CONTEXT;
|
flags |= __DRI2_FLUSH_CONTEXT;
|
||||||
loader_dri3_flush(draw, flags, __DRI2_THROTTLE_SWAPBUFFER);
|
loader_dri3_flush(draw, flags, __DRI2_THROTTLE_COPYSUBBUFFER);
|
||||||
|
|
||||||
back = dri3_find_back_alloc(draw);
|
back = dri3_find_back_alloc(draw);
|
||||||
if (!back)
|
if (!back)
|
||||||
|
Reference in New Issue
Block a user