diff options
author | José Fonseca <[email protected]> | 2009-07-07 17:56:12 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2009-07-14 12:20:43 +0100 |
commit | 4ed1de8b84b587d2be0c0e4ecb6b5f421195f562 (patch) | |
tree | d27541abf2ff304aceb91b1073f76c27c13e5e39 /src/mesa/state_tracker | |
parent | 680f7d09b00fdec0dbe5e357639d6b445bb9266e (diff) |
mesa: Report the true face number when flushing.
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r-- | src/mesa/state_tracker/st_cb_texture.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index 909189f9d39..22685bd5d95 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -950,8 +950,9 @@ st_get_tex_image(GLcontext * ctx, GLenum target, GLint level, /* Image is stored in hardware format in a buffer managed by the * kernel. Need to explicitly map and unmap it. */ + unsigned face = _mesa_tex_target_to_face(target); - st_teximage_flush_before_map(ctx->st, stImage->pt, 0, level, + st_teximage_flush_before_map(ctx->st, stImage->pt, face, level, PIPE_TRANSFER_READ); texImage->Data = st_texture_image_map(ctx->st, stImage, 0, @@ -1080,13 +1081,15 @@ st_TexSubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level, * from uploading the buffer under us. */ if (stImage->pt) { + unsigned face = _mesa_tex_target_to_face(target); + if (format == GL_DEPTH_COMPONENT && pf_is_depth_and_stencil(stImage->pt->format)) transfer_usage = PIPE_TRANSFER_READ_WRITE; else transfer_usage = PIPE_TRANSFER_WRITE; - st_teximage_flush_before_map(ctx->st, stImage->pt, 0, level, + st_teximage_flush_before_map(ctx->st, stImage->pt, face, level, transfer_usage); texImage->Data = st_texture_image_map(ctx->st, stImage, zoffset, transfer_usage, @@ -1213,7 +1216,9 @@ st_CompressedTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, int y; if (stImage->pt) { - st_teximage_flush_before_map(ctx->st, stImage->pt, 0, level, + unsigned face = _mesa_tex_target_to_face(target); + + st_teximage_flush_before_map(ctx->st, stImage->pt, face, level, PIPE_TRANSFER_WRITE); texImage->Data = st_texture_image_map(ctx->st, stImage, 0, PIPE_TRANSFER_WRITE, |