intel: fix TFP at 16-bpp
authorDave Airlie <airlied@gmail.com>
Fri, 23 Mar 2012 16:17:33 +0000 (16:17 +0000)
committerDave Airlie <airlied@redhat.com>
Sun, 25 Mar 2012 16:15:52 +0000 (17:15 +0100)
don't ask why I had to debug this.

tested to fix g-s and kwin at 16-bpp on Ironlake.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/mesa/drivers/dri/intel/intel_tex_image.c

index 1f574351504bc72386461db4596ec0012de7817f..094d3cd30c437813552c395a71bb6534b415d301 100644 (file)
@@ -341,13 +341,18 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
    if (!rb || !rb->mt)
       return;
 
-   if (texture_format == __DRI_TEXTURE_FORMAT_RGB) {
+   if (rb->mt->cpp == 4) {
+      if (texture_format == __DRI_TEXTURE_FORMAT_RGB) {
+         internalFormat = GL_RGB;
+         texFormat = MESA_FORMAT_XRGB8888;
+      }
+      else {
+         internalFormat = GL_RGBA;
+         texFormat = MESA_FORMAT_ARGB8888;
+      }
+   } else if (rb->mt->cpp == 2) {
       internalFormat = GL_RGB;
-      texFormat = MESA_FORMAT_XRGB8888;
-   }
-   else {
-      internalFormat = GL_RGBA;
-      texFormat = MESA_FORMAT_ARGB8888;
+      texFormat = MESA_FORMAT_RGB565;
    }
 
    _mesa_lock_texture(&intel->ctx, texObj);