projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
st/mesa: fix pipe_get_transfer() call in fallback_copy_texsubimage()
[mesa.git]
/
src
/
mesa
/
state_tracker
/
st_cb_texture.c
diff --git
a/src/mesa/state_tracker/st_cb_texture.c
b/src/mesa/state_tracker/st_cb_texture.c
index 9d824b46c2333679962e1276a37b4d8f3ff3a32c..d52e273514d166b8a9d5ca9fc8e33259d6faf8ee 100644
(file)
--- a/
src/mesa/state_tracker/st_cb_texture.c
+++ b/
src/mesa/state_tracker/st_cb_texture.c
@@
-795,6
+795,11
@@
decompress_with_blit(struct gl_context * ctx, GLenum target, GLint level,
return;
}
return;
}
+ /* Disable conditional rendering. */
+ if (st->render_condition) {
+ pipe->render_condition(pipe, NULL, 0);
+ }
+
/* blit/render/decompress */
util_blit_pixels_tex(st->blit,
src_view, /* pipe_resource (src) */
/* blit/render/decompress */
util_blit_pixels_tex(st->blit,
src_view, /* pipe_resource (src) */
@@
-806,6
+811,12
@@
decompress_with_blit(struct gl_context * ctx, GLenum target, GLint level,
0.0, /* z */
PIPE_TEX_MIPFILTER_NEAREST);
0.0, /* z */
PIPE_TEX_MIPFILTER_NEAREST);
+ /* Restore conditional rendering state. */
+ if (st->render_condition) {
+ pipe->render_condition(pipe, st->render_condition,
+ st->condition_mode);
+ }
+
/* map the dst_surface so we can read from it */
tex_xfer = pipe_get_transfer(pipe,
dst_texture, 0, 0,
/* map the dst_surface so we can read from it */
tex_xfer = pipe_get_transfer(pipe,
dst_texture, 0, 0,
@@
-1230,7
+1241,8
@@
fallback_copy_texsubimage(struct gl_context *ctx, GLenum target, GLint level,
src_trans = pipe_get_transfer(pipe,
strb->texture,
src_trans = pipe_get_transfer(pipe,
strb->texture,
- 0, 0,
+ strb->rtt_level,
+ strb->rtt_face + strb->rtt_slice,
PIPE_TRANSFER_READ,
srcX, srcY,
width, height);
PIPE_TRANSFER_READ,
srcX, srcY,
width, height);
@@
-1556,6
+1568,11
@@
st_copy_texsubimage(struct gl_context *ctx,
srcY1 = srcY0 + height;
}
srcY1 = srcY0 + height;
}
+ /* Disable conditional rendering. */
+ if (st->render_condition) {
+ pipe->render_condition(pipe, NULL, 0);
+ }
+
util_blit_pixels_writemask(st->blit,
strb->texture,
strb->surface->u.tex.level,
util_blit_pixels_writemask(st->blit,
strb->texture,
strb->surface->u.tex.level,
@@
-1567,6
+1584,13
@@
st_copy_texsubimage(struct gl_context *ctx,
destX + width, destY + height,
0.0, PIPE_TEX_MIPFILTER_NEAREST,
format_writemask);
destX + width, destY + height,
0.0, PIPE_TEX_MIPFILTER_NEAREST,
format_writemask);
+
+ /* Restore conditional rendering state. */
+ if (st->render_condition) {
+ pipe->render_condition(pipe, st->render_condition,
+ st->condition_mode);
+ }
+
use_fallback = GL_FALSE;
}
use_fallback = GL_FALSE;
}