aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2012-03-23 16:17:33 +0000
committerDave Airlie <[email protected]>2012-03-25 17:15:52 +0100
commit7b6424143d8bf572cadd46adcbaa91d2a5598635 (patch)
tree2f700f222f7ce5619b5cec323e7e6d23f2b6fc36 /src/mesa/drivers/dri
parentd6c5ad52b2473064f0b3e031a2e1b59480c68c43 (diff)
intel: fix TFP at 16-bpp
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 <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_image.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c
index 1f574351504..094d3cd30c4 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -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);