DRI2/GLX: use new swap event types
Use the new event types so we can pass a valid SBC value to clients. Fix up the completion calls to use CARD32 instead of CARD64 to match the new field size. Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
parent
a3cb7d097a
commit
932513e23b
|
@ -774,11 +774,11 @@ RECORDPROTO="recordproto >= 1.13.99.1"
|
||||||
SCRNSAVERPROTO="scrnsaverproto >= 1.1"
|
SCRNSAVERPROTO="scrnsaverproto >= 1.1"
|
||||||
RESOURCEPROTO="resourceproto"
|
RESOURCEPROTO="resourceproto"
|
||||||
DRIPROTO="xf86driproto >= 2.1.0"
|
DRIPROTO="xf86driproto >= 2.1.0"
|
||||||
DRI2PROTO="dri2proto >= 2.3"
|
DRI2PROTO="dri2proto >= 2.6"
|
||||||
XINERAMAPROTO="xineramaproto"
|
XINERAMAPROTO="xineramaproto"
|
||||||
BIGFONTPROTO="xf86bigfontproto >= 1.2.0"
|
BIGFONTPROTO="xf86bigfontproto >= 1.2.0"
|
||||||
DGAPROTO="xf86dgaproto >= 2.0.99.1"
|
DGAPROTO="xf86dgaproto >= 2.0.99.1"
|
||||||
GLPROTO="glproto >= 1.4.10"
|
GLPROTO="glproto >= 1.4.14"
|
||||||
DMXPROTO="dmxproto >= 2.2.99.1"
|
DMXPROTO="dmxproto >= 2.2.99.1"
|
||||||
VIDMODEPROTO="xf86vidmodeproto >= 2.2.99.1"
|
VIDMODEPROTO="xf86vidmodeproto >= 2.2.99.1"
|
||||||
WINDOWSWMPROTO="windowswmproto"
|
WINDOWSWMPROTO="windowswmproto"
|
||||||
|
|
|
@ -163,10 +163,10 @@ __glXDRIdrawableWaitGL(__GLXdrawable *drawable)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
__glXdriSwapEvent(ClientPtr client, void *data, int type, CARD64 ust,
|
__glXdriSwapEvent(ClientPtr client, void *data, int type, CARD64 ust,
|
||||||
CARD64 msc, CARD64 sbc)
|
CARD64 msc, CARD32 sbc)
|
||||||
{
|
{
|
||||||
__GLXdrawable *drawable = data;
|
__GLXdrawable *drawable = data;
|
||||||
xGLXBufferSwapComplete wire;
|
xGLXBufferSwapComplete2 wire;
|
||||||
|
|
||||||
if (!(drawable->eventMask & GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK))
|
if (!(drawable->eventMask & GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK))
|
||||||
return;
|
return;
|
||||||
|
@ -192,8 +192,7 @@ __glXdriSwapEvent(ClientPtr client, void *data, int type, CARD64 ust,
|
||||||
wire.ust_lo = ust & 0xffffffff;
|
wire.ust_lo = ust & 0xffffffff;
|
||||||
wire.msc_hi = msc >> 32;
|
wire.msc_hi = msc >> 32;
|
||||||
wire.msc_lo = msc & 0xffffffff;
|
wire.msc_lo = msc & 0xffffffff;
|
||||||
wire.sbc_hi = sbc >> 32;
|
wire.sbc = sbc;
|
||||||
wire.sbc_lo = sbc & 0xffffffff;
|
|
||||||
|
|
||||||
WriteEventsToClient(client, 1, (xEvent *) &wire);
|
WriteEventsToClient(client, 1, (xEvent *) &wire);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ extern CARD8 dri2_minor;
|
||||||
|
|
||||||
typedef DRI2BufferRec DRI2Buffer2Rec, *DRI2Buffer2Ptr;
|
typedef DRI2BufferRec DRI2Buffer2Rec, *DRI2Buffer2Ptr;
|
||||||
typedef void (*DRI2SwapEventPtr)(ClientPtr client, void *data, int type,
|
typedef void (*DRI2SwapEventPtr)(ClientPtr client, void *data, int type,
|
||||||
CARD64 ust, CARD64 msc, CARD64 sbc);
|
CARD64 ust, CARD64 msc, CARD32 sbc);
|
||||||
|
|
||||||
|
|
||||||
typedef DRI2BufferPtr (*DRI2CreateBuffersProcPtr)(DrawablePtr pDraw,
|
typedef DRI2BufferPtr (*DRI2CreateBuffersProcPtr)(DrawablePtr pDraw,
|
||||||
|
|
|
@ -357,9 +357,9 @@ vals_to_card64(CARD32 lo, CARD32 hi)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
DRI2SwapEvent(ClientPtr client, void *data, int type, CARD64 ust, CARD64 msc,
|
DRI2SwapEvent(ClientPtr client, void *data, int type, CARD64 ust, CARD64 msc,
|
||||||
CARD64 sbc)
|
CARD32 sbc)
|
||||||
{
|
{
|
||||||
xDRI2BufferSwapComplete event;
|
xDRI2BufferSwapComplete2 event;
|
||||||
DrawablePtr pDrawable = data;
|
DrawablePtr pDrawable = data;
|
||||||
|
|
||||||
event.type = DRI2EventBase + DRI2_BufferSwapComplete;
|
event.type = DRI2EventBase + DRI2_BufferSwapComplete;
|
||||||
|
@ -369,8 +369,7 @@ DRI2SwapEvent(ClientPtr client, void *data, int type, CARD64 ust, CARD64 msc,
|
||||||
event.ust_lo = ust & 0xffffffff;
|
event.ust_lo = ust & 0xffffffff;
|
||||||
event.msc_hi = (CARD64)msc >> 32;
|
event.msc_hi = (CARD64)msc >> 32;
|
||||||
event.msc_lo = msc & 0xffffffff;
|
event.msc_lo = msc & 0xffffffff;
|
||||||
event.sbc_hi = (CARD64)sbc >> 32;
|
event.sbc = sbc;
|
||||||
event.sbc_lo = sbc & 0xffffffff;
|
|
||||||
|
|
||||||
WriteEventsToClient(client, 1, (xEvent *)&event);
|
WriteEventsToClient(client, 1, (xEvent *)&event);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue