diff options
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_tex_subimage.c | 11 |
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; |