Mesa (master): intel: fix up some XRGB breakage
Brian Paul
brianp at kemper.freedesktop.org
Fri Oct 30 15:12:55 UTC 2009
Module: Mesa
Branch: master
Commit: 409469fb70682cd819ab405e0f92a4659381cfbe
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=409469fb70682cd819ab405e0f92a4659381cfbe
Author: Brian Paul <brianp at vmware.com>
Date: Fri Oct 30 09:12:11 2009 -0600
intel: fix up some XRGB breakage
We weren't choosing the right XRGB span functions for reading the
framebuffer. XRGB formats still aren't turned on yet though.
---
src/mesa/drivers/dri/intel/intel_fbo.c | 5 ++++-
src/mesa/drivers/dri/intel/intel_screen.c | 2 +-
src/mesa/drivers/dri/intel/intel_span.c | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 9c780d4..d8ac4d3 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -314,6 +314,10 @@ intel_create_renderbuffer(gl_format format)
irb->Base.DataType = GL_UNSIGNED_BYTE;
break;
case MESA_FORMAT_XRGB8888:
+ /* XXX this is a hack since XRGB surfaces don't seem to work
+ * properly yet. Reading the alpha channel returns 0 instead of 1.
+ */
+ format = MESA_FORMAT_ARGB8888;
irb->Base._BaseFormat = GL_RGB;
irb->Base.DataType = GL_UNSIGNED_BYTE;
break;
@@ -340,7 +344,6 @@ intel_create_renderbuffer(gl_format format)
return NULL;
}
- assert(irb->Base._BaseFormat == _mesa_get_format_base_format(format));
irb->Base.Format = format;
irb->Base.InternalFormat = irb->Base._BaseFormat;
irb->texformat = format;
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index 62c322b..789135b 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -361,7 +361,7 @@ intelCreateBuffer(__DRIscreenPrivate * driScrnPriv,
if (mesaVis->redBits == 5)
rgbFormat = MESA_FORMAT_RGB565;
else if (mesaVis->alphaBits == 0)
- rgbFormat = MESA_FORMAT_ARGB8888; /* XXX change to XRGB someday */
+ rgbFormat = MESA_FORMAT_XRGB8888;
else
rgbFormat = MESA_FORMAT_ARGB8888;
diff --git a/src/mesa/drivers/dri/intel/intel_span.c b/src/mesa/drivers/dri/intel/intel_span.c
index b0484a9..927e4fd 100644
--- a/src/mesa/drivers/dri/intel/intel_span.c
+++ b/src/mesa/drivers/dri/intel/intel_span.c
@@ -666,7 +666,7 @@ intel_set_span_functions(struct intel_context *intel,
}
break;
case MESA_FORMAT_ARGB8888:
- if (0 /*rb->AlphaBits == 0*/) { /* XXX: Need xRGB8888 Mesa format */
+ if (rb->_BaseFormat == GL_RGB) {
/* XXX remove this code someday when we enable XRGB surfaces */
/* 8888 RGBx */
switch (tiling) {
More information about the mesa-commit
mailing list