Module: Mesa Branch: master Commit: 2cebaac479d49cd6df4e97b466ba14bab3f30db1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2cebaac479d49cd6df4e97b466ba14bab3f30db1
Author: Jason Ekstrand <[email protected]> Date: Mon Feb 2 09:49:44 2015 -0800 i965: Don't use tiled_memcpy to download from RGBX or BGRX surfaces Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88841 Reviewed-by: Anuj Phogat <[email protected]> --- src/mesa/drivers/dri/i965/intel_pixel_read.c | 7 +++++++ src/mesa/drivers/dri/i965/intel_tex_image.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/mesa/drivers/dri/i965/intel_pixel_read.c b/src/mesa/drivers/dri/i965/intel_pixel_read.c index f3ab05c..df22a63 100644 --- a/src/mesa/drivers/dri/i965/intel_pixel_read.c +++ b/src/mesa/drivers/dri/i965/intel_pixel_read.c @@ -132,6 +132,13 @@ intel_readpixels_tiled_memcpy(struct gl_context * ctx, if (rb->NumSamples > 1) return false; + /* We can't handle copying from RGBX or BGRX because the tiled_memcpy + * function doesn't set the last channel to 1. + */ + if (rb->Format == MESA_FORMAT_B8G8R8X8_UNORM || + rb->Format == MESA_FORMAT_R8G8B8X8_UNORM) + return false; + if (!intel_get_memcpy(rb->Format, format, type, &mem_copy, &cpp)) return false; diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c b/src/mesa/drivers/dri/i965/intel_tex_image.c index 53efbbb..6eebfc4 100644 --- a/src/mesa/drivers/dri/i965/intel_tex_image.c +++ b/src/mesa/drivers/dri/i965/intel_tex_image.c @@ -392,6 +392,13 @@ intel_gettexsubimage_tiled_memcpy(struct gl_context *ctx, packing->Invert) return false; + /* We can't handle copying from RGBX or BGRX because the tiled_memcpy + * function doesn't set the last channel to 1. + */ + if (texImage->TexFormat == MESA_FORMAT_B8G8R8X8_UNORM || + texImage->TexFormat == MESA_FORMAT_R8G8B8X8_UNORM) + return false; + if (!intel_get_memcpy(texImage->TexFormat, format, type, &mem_copy, &cpp)) return false; _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
