diff options
author | marha <marha@users.sourceforge.net> | 2010-04-16 15:34:33 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-04-16 15:34:33 +0000 |
commit | 0b8629ada4293370d220bbb7e6c195c711baee7d (patch) | |
tree | a7774b45662db90282ae18b17eb3d8f77d8c746d /xorg-server/hw/xfree86/dri2/dri2ext.c | |
parent | 8654ee514b4d79feec936501717a06892090d3b7 (diff) | |
download | vcxsrv-0b8629ada4293370d220bbb7e6c195c711baee7d.tar.gz vcxsrv-0b8629ada4293370d220bbb7e6c195c711baee7d.tar.bz2 vcxsrv-0b8629ada4293370d220bbb7e6c195c711baee7d.zip |
svn merge -r534:HEAD ^/branches/released .
Diffstat (limited to 'xorg-server/hw/xfree86/dri2/dri2ext.c')
-rw-r--r-- | xorg-server/hw/xfree86/dri2/dri2ext.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/xorg-server/hw/xfree86/dri2/dri2ext.c b/xorg-server/hw/xfree86/dri2/dri2ext.c index bd92fd304..094d54dc0 100644 --- a/xorg-server/hw/xfree86/dri2/dri2ext.c +++ b/xorg-server/hw/xfree86/dri2/dri2ext.c @@ -80,8 +80,8 @@ ProcDRI2QueryVersion(ClientPtr client) rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; - rep.majorVersion = SERVER_DRI2_MAJOR_VERSION; - rep.minorVersion = SERVER_DRI2_MINOR_VERSION; + rep.majorVersion = dri2_major; + rep.minorVersion = dri2_minor; if (client->swapped) { swaps(&rep.sequenceNumber, n); @@ -384,6 +384,13 @@ ProcDRI2SwapBuffers(ClientPtr client) DixReadAccess | DixWriteAccess, &pDrawable, &status)) return status; + /* + * Ensures an out of control client can't exhaust our swap queue, and + * also orders swaps. + */ + if (DRI2ThrottleClient(client, pDrawable)) + return client->noClientException; + target_msc = vals_to_card64(stuff->target_msc_lo, stuff->target_msc_hi); divisor = vals_to_card64(stuff->divisor_lo, stuff->divisor_hi); remainder = vals_to_card64(stuff->remainder_lo, stuff->remainder_hi); |