summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/i965/intel_pixel_read.c7
-rw-r--r--src/mesa/drivers/dri/i965/intel_tex_image.c7
2 files changed, 14 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_pixel_read.c b/src/mesa/drivers/dri/i965/intel_pixel_read.c
index f3ab05ccbb8..df22a637dce 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 53efbbb2f74..6eebfc4bd4b 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;