Mesa (master): Revert "st/xorg/dri: Pass texture formats via the DRI2 protocol flags."

Jakob Bornecrantz wallbraker at kemper.freedesktop.org
Fri Aug 28 11:43:30 UTC 2009


Module: Mesa
Branch: master
Commit: 205d344e2a2f0c9ea982b037ab68feab06cbebb1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=205d344e2a2f0c9ea982b037ab68feab06cbebb1

Author: Jakob Bornecrantz <jakob at vmware.com>
Date:   Fri Aug 28 11:43:19 2009 +0200

Revert "st/xorg/dri: Pass texture formats via the DRI2 protocol flags."

This reverts commit a33e9ea3b9b7ac98d6e9bc385bbbe7eac2eb73d0.

As this change breaks both radeon and nouveau

---

 src/gallium/state_trackers/dri/dri_drawable.c |   16 ++++++++++------
 src/gallium/state_trackers/xorg/xorg_dri2.c   |    2 +-
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/gallium/state_trackers/dri/dri_drawable.c b/src/gallium/state_trackers/dri/dri_drawable.c
index c092afe..200b4bd 100644
--- a/src/gallium/state_trackers/dri/dri_drawable.c
+++ b/src/gallium/state_trackers/dri/dri_drawable.c
@@ -183,25 +183,27 @@ dri_get_buffers(__DRIdrawablePrivate * dPriv)
    drawable->is_pixmap = dri2_check_if_pixmap(buffers, count);
 
    for (i = 0; i < count; i++) {
+      enum pipe_format format = 0;
       int index = 0;
 
       switch (buffers[i].attachment) {
       case __DRI_BUFFER_FRONT_LEFT:
+	 continue;
       case __DRI_BUFFER_FAKE_FRONT_LEFT:
 	 index = ST_SURFACE_FRONT_LEFT;
-	 drawable->color_format = buffers[i].flags;
+	 format = drawable->color_format;
 	 break;
       case __DRI_BUFFER_BACK_LEFT:
 	 index = ST_SURFACE_BACK_LEFT;
-	 drawable->color_format = buffers[i].flags;
+	 format = drawable->color_format;
 	 break;
       case __DRI_BUFFER_DEPTH:
 	 index = ST_SURFACE_DEPTH;
-	 drawable->depth_format = buffers[i].flags;
+	 format = drawable->depth_format;
 	 break;
       case __DRI_BUFFER_STENCIL:
 	 index = ST_SURFACE_DEPTH;
-	 drawable->stencil_format = buffers[i].flags;
+	 format = drawable->stencil_format;
 	 break;
       case __DRI_BUFFER_ACCUM:
       default:
@@ -218,7 +220,7 @@ dri_get_buffers(__DRIdrawablePrivate * dPriv)
       surface = dri_surface_from_handle(api,
 					screen,
 					buffers[i].name,
-					buffers[i].flags,
+					format,
 					dri_drawable->w,
 					dri_drawable->h, buffers[i].pitch);
 
@@ -248,7 +250,9 @@ void dri2_set_tex_buffer2(__DRIcontext *pDRICtx, GLint target,
    st_get_framebuffer_surface(drawable->stfb, ST_SURFACE_FRONT_LEFT, &ps);
 
    st_bind_texture_surface(ps, target == GL_TEXTURE_2D ? ST_TEXTURE_2D :
-                           ST_TEXTURE_RECT, 0, drawable->color_format);
+                           ST_TEXTURE_RECT, 0,
+                           format == GLX_TEXTURE_FORMAT_RGBA_EXT ?
+                           PIPE_FORMAT_R8G8B8A8_UNORM : PIPE_FORMAT_R8G8B8X8_UNORM);
 }
 
 void dri2_set_tex_buffer(__DRIcontext *pDRICtx, GLint target,
diff --git a/src/gallium/state_trackers/xorg/xorg_dri2.c b/src/gallium/state_trackers/xorg/xorg_dri2.c
index 1a4677b..3aea37a 100644
--- a/src/gallium/state_trackers/xorg/xorg_dri2.c
+++ b/src/gallium/state_trackers/xorg/xorg_dri2.c
@@ -141,7 +141,7 @@ driCreateBuffers(DrawablePtr pDraw, unsigned int *attachments, int count)
 	buffers[i].pitch = stride;
 	buffers[i].cpp = 4;
 	buffers[i].driverPrivate = &privates[i];
-	buffers[i].flags = tex->format;
+	buffers[i].flags = 0; /* not tiled */
 	privates[i].pPixmap = pPixmap;
 	privates[i].buf = buf;
 	privates[i].tex = tex;




More information about the mesa-commit mailing list