summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r--src/mesa/drivers/dri/i965/intel_tex_subimage.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_tex_subimage.c b/src/mesa/drivers/dri/i965/intel_tex_subimage.c
index 04cbc4c5aee..c73cf10f588 100644
--- a/src/mesa/drivers/dri/i965/intel_tex_subimage.c
+++ b/src/mesa/drivers/dri/i965/intel_tex_subimage.c
@@ -585,6 +585,17 @@ intel_texsubimage_tiled_memcpy(struct gl_context * ctx,
} else if (format == GL_RGBA) {
mem_copy = rgba8_copy;
}
+ } else if ((texImage->TexFormat == MESA_FORMAT_R8G8B8A8_UNORM) ||
+ (texImage->TexFormat == MESA_FORMAT_R8G8B8X8_UNORM)) {
+ cpp = 4;
+ if (format == GL_BGRA) {
+ /* Copying from RGBA to BGRA is the same as BGRA to RGBA so we can
+ * use the same function.
+ */
+ mem_copy = rgba8_copy;
+ } else if (format == GL_RGBA) {
+ mem_copy = memcpy;
+ }
}
if (!mem_copy)
return false;