summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu.herrb@laas.fr>2009-07-09 13:17:53 +0200
committerMatthieu Herrb <matthieu.herrb@laas.fr>2009-07-09 13:17:53 +0200
commit0ae3131d6dd71825e4a0734ea341f3bb2ab0d8c3 (patch)
tree2e21706876d9ad5cebefa66de45da068411129ee
parent784eca5e4e170ea9cfe218f81e43182ba097d9c3 (diff)
parent396d3a7762abd0dd84042833b75f2ebf9d100bb0 (diff)
Merge commit 'origin/server-1.6-branch' into obsd-server-1.6-branchobsd-server-1.6.2
-rw-r--r--Xext/panoramiX.c6
-rw-r--r--configure.ac4
-rw-r--r--glx/glxcmds.c39
-rw-r--r--glx/glxdrawable.h2
-rw-r--r--glx/glxdri.c2
-rw-r--r--glx/glxdri2.c35
-rw-r--r--hw/xfree86/common/Makefile.am2
-rw-r--r--hw/xfree86/dri2/dri2.c253
-rw-r--r--hw/xfree86/dri2/dri2.h21
-rw-r--r--hw/xfree86/dri2/dri2ext.c6
-rw-r--r--hw/xfree86/parser/Makefile.am10
11 files changed, 279 insertions, 101 deletions
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index bab8c9839..a1f4ce01e 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -58,6 +58,8 @@ Equipment Corporation.
#endif
#include "modinit.h"
+#define SERVER_PANORAMIX_MAJOR_VERSION 1
+#define SERVER_PANORAMIX_MINOR_VERSION 1
#ifdef GLXPROXY
extern VisualPtr glxMatchVisual(ScreenPtr pScreen,
@@ -903,8 +905,8 @@ ProcPanoramiXQueryVersion (ClientPtr client)
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
- rep.majorVersion = PANORAMIX_MAJOR_VERSION;
- rep.minorVersion = PANORAMIX_MINOR_VERSION;
+ rep.majorVersion = SERVER_PANORAMIX_MAJOR_VERSION;
+ rep.minorVersion = SERVER_PANORAMIX_MINOR_VERSION;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
diff --git a/configure.ac b/configure.ac
index 1b783cf0b..6b3d70f7f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,12 +26,12 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.6.1.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+AC_INIT([xorg-server], 1.6.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
-RELEASE_DATE="2009-6-29"
+RELEASE_DATE="2009-7-7"
dnl this gets generated by autoheader, and thus contains all the defines. we
dnl don't ever actually use it, internally.
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index 71f15442a..ff8b126be 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -748,29 +748,46 @@ int __glXDisp_QueryVersion(__GLXclientState *cl, GLbyte *pc)
int __glXDisp_WaitGL(__GLXclientState *cl, GLbyte *pc)
{
xGLXWaitGLReq *req = (xGLXWaitGLReq *)pc;
+ GLXContextTag tag = req->contextTag;
+ __GLXcontext *glxc = NULL;
int error;
+
+ if (tag) {
+ glxc = __glXLookupContextByTag(cl, tag);
+ if (!glxc)
+ return __glXError(GLXBadContextTag);
- if (!__glXForceCurrent(cl, req->contextTag, &error)) {
- return error;
+ if (!__glXForceCurrent(cl, req->contextTag, &error))
+ return error;
+
+ CALL_Finish( GET_DISPATCH(), () );
}
- CALL_Finish( GET_DISPATCH(), () );
+
+ if (glxc && glxc->drawPriv->waitGL)
+ (*glxc->drawPriv->waitGL)(glxc->drawPriv);
+
return Success;
}
int __glXDisp_WaitX(__GLXclientState *cl, GLbyte *pc)
{
xGLXWaitXReq *req = (xGLXWaitXReq *)pc;
+ GLXContextTag tag = req->contextTag;
+ __GLXcontext *glxc = NULL;
int error;
+
+ if (tag) {
+ glxc = __glXLookupContextByTag(cl, tag);
+ if (!glxc)
+ return __glXError(GLXBadContextTag);
- if (!__glXForceCurrent(cl, req->contextTag, &error)) {
- return error;
+ if (!__glXForceCurrent(cl, req->contextTag, &error))
+ return error;
}
- /*
- ** In a multithreaded server that had separate X and GL threads, we would
- ** have to wait for the X thread to finish before returning. As it stands,
- ** this sample implementation only supports singlethreaded servers, and
- ** nothing needs to be done here.
- */
+
+ if (glxc && glxc->drawPriv->waitGL)
+ (*glxc->drawPriv->waitGL)(glxc->drawPriv);
+
return Success;
}
diff --git a/glx/glxdrawable.h b/glx/glxdrawable.h
index 4f61f8b97..f5a040359 100644
--- a/glx/glxdrawable.h
+++ b/glx/glxdrawable.h
@@ -49,6 +49,8 @@ struct __GLXdrawable {
GLboolean (*swapBuffers)(__GLXdrawable *);
void (*copySubBuffer)(__GLXdrawable *drawable,
int x, int y, int w, int h);
+ void (*waitX)(__GLXdrawable *);
+ void (*waitGL)(__GLXdrawable *);
DrawablePtr pDraw;
XID drawId;
diff --git a/glx/glxdri.c b/glx/glxdri.c
index 8d614d08a..64606ab5a 100644
--- a/glx/glxdri.c
+++ b/glx/glxdri.c
@@ -706,6 +706,8 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen,
private->base.destroy = __glXDRIdrawableDestroy;
private->base.swapBuffers = __glXDRIdrawableSwapBuffers;
private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer;
+ private->base.waitX = NULL;
+ private->base.waitGL = NULL;
__glXenterServer(GL_FALSE);
retval = DRICreateDrawable(screen->pScreen, serverClient,
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index 836fea4d8..146ea828f 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -143,6 +143,39 @@ __glXDRIdrawableSwapBuffers(__GLXdrawable *drawable)
return TRUE;
}
+static void
+__glXDRIdrawableWaitX(__GLXdrawable *drawable)
+{
+ __GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable;
+ BoxRec box;
+ RegionRec region;
+
+ box.x1 = 0;
+ box.y1 = 0;
+ box.x2 = private->width;
+ box.y2 = private->height;
+ REGION_INIT(drawable->pDraw->pScreen, &region, &box, 0);
+
+ DRI2CopyRegion(drawable->pDraw, &region,
+ DRI2BufferFakeFrontLeft, DRI2BufferFrontLeft);
+}
+
+static void
+__glXDRIdrawableWaitGL(__GLXdrawable *drawable)
+{
+ __GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable;
+ BoxRec box;
+ RegionRec region;
+
+ box.x1 = 0;
+ box.y1 = 0;
+ box.x2 = private->width;
+ box.y2 = private->height;
+ REGION_INIT(drawable->pDraw->pScreen, &region, &box, 0);
+
+ DRI2CopyRegion(drawable->pDraw, &region,
+ DRI2BufferFrontLeft, DRI2BufferFakeFrontLeft);
+}
static int
__glXDRIdrawableSwapInterval(__GLXdrawable *drawable, int interval)
@@ -351,6 +384,8 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen,
private->base.destroy = __glXDRIdrawableDestroy;
private->base.swapBuffers = __glXDRIdrawableSwapBuffers;
private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer;
+ private->base.waitGL = __glXDRIdrawableWaitGL;
+ private->base.waitX = __glXDRIdrawableWaitX;
if (DRI2CreateDrawable(pDraw)) {
xfree(private);
diff --git a/hw/xfree86/common/Makefile.am b/hw/xfree86/common/Makefile.am
index 77ab4c386..b38c14a7d 100644
--- a/hw/xfree86/common/Makefile.am
+++ b/hw/xfree86/common/Makefile.am
@@ -47,7 +47,7 @@ sdk_HEADERS = compiler.h fourcc.h xf86.h xf86Module.h xf86Opt.h \
xf86PciInfo.h xf86Priv.h xf86Privstr.h xf86Resources.h \
xf86cmap.h xf86fbman.h xf86str.h xf86RAC.h xf86Xinput.h xisb.h \
$(XVSDKINCS) xorgVersion.h \
- xf86sbusBus.h xf86xv.h xf86xvmc.h xf86xvpriv.h
+ xf86sbusBus.h xf86xvpriv.h
DISTCLEANFILES = xf86Build.h
CLEANFILES = $(BUILT_SOURCES)
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index 385c5e8d4..580383dbc 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -53,7 +53,7 @@ typedef struct _DRI2Drawable {
unsigned int refCount;
int width;
int height;
- DRI2BufferPtr *buffers;
+ DRI2Buffer2Ptr *buffers;
int bufferCount;
unsigned int pendingSequence;
} DRI2DrawableRec, *DRI2DrawablePtr;
@@ -63,6 +63,10 @@ typedef struct _DRI2Screen {
const char *deviceName;
int fd;
unsigned int lastSequence;
+
+ DRI2CreateBuffersProcPtr CreateBuffers;
+ DRI2DestroyBuffersProcPtr DestroyBuffers;
+
DRI2CreateBufferProcPtr CreateBuffer;
DRI2DestroyBufferProcPtr DestroyBuffer;
DRI2CopyRegionProcPtr CopyRegion;
@@ -133,17 +137,17 @@ DRI2CreateDrawable(DrawablePtr pDraw)
}
static int
-find_attachment(DRI2BufferPtr *buffer_list, int count, unsigned attachment)
+find_attachment(DRI2DrawablePtr pPriv, unsigned attachment)
{
int i;
- if (buffer_list == NULL) {
+ if (pPriv->buffers == NULL) {
return -1;
}
- for (i = 0; i < count; i++) {
- if ((buffer_list[i] != NULL)
- && (buffer_list[i]->attachment == attachment)) {
+ for (i = 0; i < pPriv->bufferCount; i++) {
+ if ((pPriv->buffers[i] != NULL)
+ && (pPriv->buffers[i]->attachment == attachment)) {
return i;
}
}
@@ -151,16 +155,16 @@ find_attachment(DRI2BufferPtr *buffer_list, int count, unsigned attachment)
return -1;
}
-static DRI2BufferPtr
+static DRI2Buffer2Ptr
allocate_or_reuse_buffer(DrawablePtr pDraw, DRI2ScreenPtr ds,
DRI2DrawablePtr pPriv,
unsigned int attachment, unsigned int format,
int dimensions_match)
{
- DRI2BufferPtr buffer;
+ DRI2Buffer2Ptr buffer;
int old_buf;
- old_buf = find_attachment(pPriv->buffers, pPriv->bufferCount, attachment);
+ old_buf = find_attachment(pPriv, attachment);
if ((old_buf < 0)
|| !dimensions_match
@@ -174,14 +178,14 @@ allocate_or_reuse_buffer(DrawablePtr pDraw, DRI2ScreenPtr ds,
return buffer;
}
-static DRI2BufferPtr *
+static DRI2Buffer2Ptr *
do_get_buffers(DrawablePtr pDraw, int *width, int *height,
unsigned int *attachments, int count, int *out_count,
int has_format)
{
DRI2ScreenPtr ds = DRI2GetScreen(pDraw->pScreen);
DRI2DrawablePtr pPriv = DRI2GetDrawable(pDraw);
- DRI2BufferPtr *buffers;
+ DRI2Buffer2Ptr *buffers;
int need_real_front = 0;
int need_fake_front = 0;
int have_fake_front = 0;
@@ -193,68 +197,156 @@ do_get_buffers(DrawablePtr pDraw, int *width, int *height,
buffers = xalloc((count + 1) * sizeof(buffers[0]));
- for (i = 0; i < count; i++) {
- const unsigned attachment = *(attachments++);
- const unsigned format = (has_format) ? *(attachments++) : 0;
+ if (ds->CreateBuffer) {
+ /* Version 2 API with CreateBuffer */
+ for (i = 0; i < count; i++) {
+ const unsigned attachment = *(attachments++);
+ const unsigned format = (has_format) ? *(attachments++) : 0;
+
+ buffers[i] = allocate_or_reuse_buffer(pDraw, ds, pPriv, attachment,
+ format, dimensions_match);
+
+ /* If the drawable is a window and the front-buffer is requested,
+ * silently add the fake front-buffer to the list of requested
+ * attachments. The counting logic in the loop accounts for the case
+ * where the client requests both the fake and real front-buffer.
+ */
+ if (attachment == DRI2BufferBackLeft) {
+ need_real_front++;
+ front_format = format;
+ }
+
+ if (attachment == DRI2BufferFrontLeft) {
+ need_real_front--;
+ front_format = format;
+
+ if (pDraw->type == DRAWABLE_WINDOW) {
+ need_fake_front++;
+ }
+ }
- buffers[i] = allocate_or_reuse_buffer(pDraw, ds, pPriv, attachment,
- format, dimensions_match);
+ if (pDraw->type == DRAWABLE_WINDOW) {
+ if (attachment == DRI2BufferFakeFrontLeft) {
+ need_fake_front--;
+ have_fake_front = 1;
+ }
+ }
+ }
+ if (need_real_front > 0) {
+ buffers[i++] = allocate_or_reuse_buffer(pDraw, ds, pPriv,
+ DRI2BufferFrontLeft,
+ front_format, dimensions_match);
+ }
- /* If the drawable is a window and the front-buffer is requested,
- * silently add the fake front-buffer to the list of requested
- * attachments. The counting logic in the loop accounts for the case
- * where the client requests both the fake and real front-buffer.
- */
- if (attachment == DRI2BufferBackLeft) {
- need_real_front++;
- front_format = format;
+ if (need_fake_front > 0) {
+ buffers[i++] = allocate_or_reuse_buffer(pDraw, ds, pPriv,
+ DRI2BufferFakeFrontLeft,
+ front_format, dimensions_match);
+ have_fake_front = 1;
}
- if (attachment == DRI2BufferFrontLeft) {
- need_real_front--;
- front_format = format;
+ *out_count = i;
- if (pDraw->type == DRAWABLE_WINDOW) {
- need_fake_front++;
+
+ if (pPriv->buffers != NULL) {
+ for (i = 0; i < pPriv->bufferCount; i++) {
+ if (pPriv->buffers[i] != NULL) {
+ (*ds->DestroyBuffer)(pDraw, pPriv->buffers[i]);
+ }
}
+
+ xfree(pPriv->buffers);
+ }
+ } else {
+ DRI2BufferPtr buffers1;
+ unsigned int temp_buf[32];
+ unsigned int *temp = temp_buf;
+ int i;
+ int buffers_match = 1;
+
+ /* Version 1 API with CreateBuffers */
+
+ if ((count + 1) > 32) {
+ temp = xalloc((count + 1) * sizeof(temp[0]));
}
- if (pDraw->type == DRAWABLE_WINDOW) {
- if (attachment == DRI2BufferFakeFrontLeft) {
+ for (i = 0; i < count; i++) {
+ const unsigned attachment = *(attachments++);
+
+ /* Version 1 doesn't deal with the format at all */
+ if (has_format)
+ attachments++;
+
+ /*
+ * Make sure the client also gets the front buffer when
+ * it asks for a back buffer
+ */
+ if (attachment == DRI2BufferBackLeft)
+ need_real_front++;
+
+ /*
+ * If the drawable is a window and the front-buffer is requested,
+ * silently add the fake front-buffer to the list of requested
+ * attachments. The counting logic in the loop accounts for the
+ * case where the client requests both the fake and real
+ * front-buffer.
+ */
+ if (attachment == DRI2BufferFrontLeft) {
+ need_real_front--;
+ if (pDraw->type == DRAWABLE_WINDOW)
+ need_fake_front++;
+ }
+ if (pDraw->type == DRAWABLE_WINDOW &&
+ attachment == DRI2BufferFakeFrontLeft)
+ {
need_fake_front--;
have_fake_front = 1;
}
+
+ temp[i] = attachment;
}
- }
- if (need_real_front > 0) {
- buffers[i++] = allocate_or_reuse_buffer(pDraw, ds, pPriv,
- DRI2BufferFrontLeft,
- front_format, dimensions_match);
- }
+ if (need_real_front > 0)
+ temp[count++] = DRI2BufferFrontLeft;
- if (need_fake_front > 0) {
- buffers[i++] = allocate_or_reuse_buffer(pDraw, ds, pPriv,
- DRI2BufferFakeFrontLeft,
- front_format, dimensions_match);
- have_fake_front = 1;
- }
+ if (need_fake_front > 0) {
+ temp[count++] = DRI2BufferFakeFrontLeft;
+ have_fake_front = 1;
+ }
+
+ if (count != pPriv->bufferCount)
+ buffers_match = 0;
+ else {
+ for (i = 0; i < count; i++)
+ if (pPriv->buffers[i]->attachment != temp[i]) {
+ buffers_match = 0;
+ break;
+ }
+ }
+ if (pPriv->buffers == NULL || !dimensions_match || !buffers_match)
+ {
+ buffers1 = (*ds->CreateBuffers)(pDraw, temp, count);
+ if (pPriv->buffers != NULL)
+ (*ds->DestroyBuffers)(pDraw, (DRI2BufferPtr) pPriv->buffers[0],
+ pPriv->bufferCount);
+ }
+ else
+ buffers1 = (DRI2BufferPtr) pPriv->buffers[0];
- *out_count = i;
+ for (i = 0; i < count; i++)
+ buffers[i] = (DRI2Buffer2Ptr) &buffers1[i];
+ *out_count = count;
- if (pPriv->buffers != NULL) {
- for (i = 0; i < pPriv->bufferCount; i++) {
- if (pPriv->buffers[i] != NULL) {
- (*ds->DestroyBuffer)(pDraw, pPriv->buffers[i]);
- }
- }
+ if (pPriv->buffers)
+ xfree (pPriv->buffers);
- xfree(pPriv->buffers);
+ if (temp != temp_buf) {
+ xfree(temp);
+ }
}
-
pPriv->buffers = buffers;
pPriv->bufferCount = *out_count;
pPriv->width = pDraw->width;
@@ -284,7 +376,7 @@ do_get_buffers(DrawablePtr pDraw, int *width, int *height,
return pPriv->buffers;
}
-DRI2BufferPtr *
+DRI2Buffer2Ptr *
DRI2GetBuffers(DrawablePtr pDraw, int *width, int *height,
unsigned int *attachments, int count, int *out_count)
{
@@ -292,7 +384,7 @@ DRI2GetBuffers(DrawablePtr pDraw, int *width, int *height,
out_count, FALSE);
}
-DRI2BufferPtr *
+DRI2Buffer2Ptr *
DRI2GetBuffersWithFormat(DrawablePtr pDraw, int *width, int *height,
unsigned int *attachments, int count, int *out_count)
{
@@ -318,13 +410,13 @@ DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
for (i = 0; i < pPriv->bufferCount; i++)
{
if (pPriv->buffers[i]->attachment == dest)
- pDestBuffer = pPriv->buffers[i];
+ pDestBuffer = (DRI2BufferPtr) pPriv->buffers[i];
if (pPriv->buffers[i]->attachment == src)
- pSrcBuffer = pPriv->buffers[i];
+ pSrcBuffer = (DRI2BufferPtr) pPriv->buffers[i];
}
if (pSrcBuffer == NULL || pDestBuffer == NULL)
return BadValue;
-
+
(*ds->CopyRegion)(pDraw, pRegion, pDestBuffer, pSrcBuffer);
return Success;
@@ -341,7 +433,7 @@ DRI2DestroyDrawable(DrawablePtr pDraw)
pPriv = DRI2GetDrawable(pDraw);
if (pPriv == NULL)
return;
-
+
pPriv->refCount--;
if (pPriv->refCount > 0)
return;
@@ -349,8 +441,13 @@ DRI2DestroyDrawable(DrawablePtr pDraw)
if (pPriv->buffers != NULL) {
int i;
- for (i = 0; i < pPriv->bufferCount; i++) {
- (*ds->DestroyBuffer)(pDraw, pPriv->buffers[i]);
+ if (ds->DestroyBuffer) {
+ for (i = 0; i < pPriv->bufferCount; i++) {
+ (*ds->DestroyBuffer)(pDraw, pPriv->buffers[i]);
+ }
+ } else {
+ (*ds->DestroyBuffers)(pDraw, (DRI2BufferPtr) pPriv->buffers[0],
+ pPriv->bufferCount);
}
xfree(pPriv->buffers);
@@ -409,18 +506,36 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
if (!ds)
return FALSE;
- if ((info->version < 2)
- || (info->CreateBuffer == NULL)
- || (info->DestroyBuffer == NULL)) {
- return FALSE;
- }
-
-
ds->fd = info->fd;
ds->driverName = info->driverName;
ds->deviceName = info->deviceName;
- ds->CreateBuffer = info->CreateBuffer;
- ds->DestroyBuffer = info->DestroyBuffer;
+
+ /* Prefer the new one-at-a-time buffer API */
+ if (info->version >= 2 && info->CreateBuffer && info->DestroyBuffer) {
+ ds->CreateBuffer = info->CreateBuffer;
+ ds->DestroyBuffer = info->DestroyBuffer;
+ ds->CreateBuffers = NULL;
+ ds->DestroyBuffers = NULL;
+ } else if (info->CreateBuffers && info->DestroyBuffers) {
+ xf86DrvMsg(pScreen->myNum, X_WARNING,
+ "[DRI2] Version 1 API (broken front buffer rendering)\n");
+ ds->CreateBuffer = NULL;
+ ds->DestroyBuffer = NULL;
+ ds->CreateBuffers = info->CreateBuffers;
+ ds->DestroyBuffers = info->DestroyBuffers;
+ } else {
+ xf86DrvMsg(pScreen->myNum, X_ERROR,
+ "[DRI2] Missing buffer management functions\n");
+ xfree(ds);
+ return FALSE;
+ }
+
+ if (!info->CopyRegion) {
+ xf86DrvMsg(pScreen->myNum, X_ERROR,
+ "[DRI2] Missing copy region function\n");
+ xfree(ds);
+ return FALSE;
+ }
ds->CopyRegion = info->CopyRegion;
dixSetPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey, ds);
diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h
index c9a0d3f0d..f3692673a 100644
--- a/hw/xfree86/dri2/dri2.h
+++ b/hw/xfree86/dri2/dri2.h
@@ -35,16 +35,27 @@
#include <X11/extensions/dri2tokens.h>
+/* Version 1 structure (for ABI compatibility) */
typedef struct {
unsigned int attachment;
unsigned int name;
unsigned int pitch;
unsigned int cpp;
unsigned int flags;
- unsigned int format;
void *driverPrivate;
} DRI2BufferRec, *DRI2BufferPtr;
+/* Version 2 structure (with format at the end) */
+typedef struct {
+ unsigned int attachment;
+ unsigned int name;
+ unsigned int pitch;
+ unsigned int cpp;
+ unsigned int flags;
+ void *driverPrivate;
+ unsigned int format;
+} DRI2Buffer2Rec, *DRI2Buffer2Ptr;
+
typedef DRI2BufferPtr (*DRI2CreateBuffersProcPtr)(DrawablePtr pDraw,
unsigned int *attachments,
int count);
@@ -59,11 +70,11 @@ typedef void (*DRI2CopyRegionProcPtr)(DrawablePtr pDraw,
typedef void (*DRI2WaitProcPtr)(WindowPtr pWin,
unsigned int sequence);
-typedef DRI2BufferPtr (*DRI2CreateBufferProcPtr)(DrawablePtr pDraw,
+typedef DRI2Buffer2Ptr (*DRI2CreateBufferProcPtr)(DrawablePtr pDraw,
unsigned int attachment,
unsigned int format);
typedef void (*DRI2DestroyBufferProcPtr)(DrawablePtr pDraw,
- DRI2BufferPtr buffer);
+ DRI2Buffer2Ptr buffer);
/**
* Version of the DRI2InfoRec structure defined in this header
@@ -108,7 +119,7 @@ int DRI2CreateDrawable(DrawablePtr pDraw);
void DRI2DestroyDrawable(DrawablePtr pDraw);
-DRI2BufferPtr *DRI2GetBuffers(DrawablePtr pDraw,
+DRI2Buffer2Ptr *DRI2GetBuffers(DrawablePtr pDraw,
int *width,
int *height,
unsigned int *attachments,
@@ -138,7 +149,7 @@ int DRI2CopyRegion(DrawablePtr pDraw,
*/
extern _X_EXPORT void DRI2Version(int *major, int *minor);
-extern _X_EXPORT DRI2BufferPtr *DRI2GetBuffersWithFormat(DrawablePtr pDraw,
+extern _X_EXPORT DRI2Buffer2Ptr *DRI2GetBuffersWithFormat(DrawablePtr pDraw,
int *width, int *height, unsigned int *attachments, int count,
int *out_count);
diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
index 97b96fa98..3c06174cb 100644
--- a/hw/xfree86/dri2/dri2ext.c
+++ b/hw/xfree86/dri2/dri2ext.c
@@ -196,7 +196,7 @@ ProcDRI2DestroyDrawable(ClientPtr client)
static void
send_buffers_reply(ClientPtr client, DrawablePtr pDrawable,
- DRI2BufferPtr *buffers, int count, int width, int height)
+ DRI2Buffer2Ptr *buffers, int count, int width, int height)
{
xDRI2GetBuffersReply rep;
int skip = 0;
@@ -246,7 +246,7 @@ ProcDRI2GetBuffers(ClientPtr client)
{
REQUEST(xDRI2GetBuffersReq);
DrawablePtr pDrawable;
- DRI2BufferPtr *buffers;
+ DRI2Buffer2Ptr *buffers;
int status, width, height, count;
unsigned int *attachments;
@@ -269,7 +269,7 @@ ProcDRI2GetBuffersWithFormat(ClientPtr client)
{
REQUEST(xDRI2GetBuffersReq);
DrawablePtr pDrawable;
- DRI2BufferPtr *buffers;
+ DRI2Buffer2Ptr *buffers;
int status, width, height, count;
unsigned int *attachments;
diff --git a/hw/xfree86/parser/Makefile.am b/hw/xfree86/parser/Makefile.am
index 7f599f9c4..a2774a47e 100644
--- a/hw/xfree86/parser/Makefile.am
+++ b/hw/xfree86/parser/Makefile.am
@@ -1,8 +1,5 @@
if INSTALL_LIBXF86CONFIG
lib_LIBRARIES = libxf86config.a
-LIBHEADERS = \
- xf86Optrec.h \
- xf86Parser.h
else
noinst_LIBRARIES = libxf86config.a
endif
@@ -30,11 +27,8 @@ AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
EXTRA_DIST = \
Configint.h \
configProcs.h \
- xf86Optrec.h \
- xf86Parser.h \
xf86tokens.h
sdk_HEADERS = \
- $(LIBHEADERS) \
- xf86Parser.h \
- xf86Optrec.h
+ xf86Optrec.h \
+ xf86Parser.h