From: Brian Paul Date: Thu, 6 Oct 2011 03:14:37 +0000 (-0600) Subject: st/mesa: don't use gl_texture_image::RowStride X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cf2439e2463ce925e3e256a25a505cf0586963f0;p=mesa.git st/mesa: don't use gl_texture_image::RowStride It's always the same as the texture width. --- diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index de3b972cfd4..1b93c9d0614 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -1685,16 +1685,18 @@ copy_image_data_to_texture(struct st_context *st, pipe_resource_reference(&stImage->pt, NULL); } else if (stImage->TexData) { + /* Copy from malloc'd memory */ + /* XXX this should be re-examined/tested with a compressed format */ + GLuint blockSize = util_format_get_blocksize(stObj->pt->format); + GLuint srcRowStride = stImage->base.Width * blockSize; + GLuint srcSliceStride = stImage->base.Height * srcRowStride; st_texture_image_data(st, stObj->pt, stImage->base.Face, dstLevel, stImage->TexData, - stImage->base.RowStride * - util_format_get_blocksize(stObj->pt->format), - stImage->base.RowStride * - stImage->base.Height * - util_format_get_blocksize(stObj->pt->format)); + srcRowStride, + srcSliceStride); _mesa_align_free(stImage->TexData); stImage->TexData = NULL; }