On Wed, Oct 28, 2015 at 5:25 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Sun, Oct 25, 2015 at 1:25 PM, Marek Olšák <mar...@gmail.com> wrote: >> +static void >> +st_CopyImageSubData(struct gl_context *ctx, >> + struct gl_texture_image *src_image, >> + struct gl_renderbuffer *src_renderbuffer, >> + int src_x, int src_y, int src_z, >> + struct gl_texture_image *dst_image, >> + struct gl_renderbuffer *dst_renderbuffer, >> + int dst_x, int dst_y, int dst_z, >> + int src_width, int src_height) >> +{ >> + struct st_context *st = st_context(ctx); >> + struct pipe_context *pipe = st->pipe; >> + struct pipe_resource *src_res, *dst_res; >> + struct pipe_box box; >> + int src_level, dst_level; >> + >> + if (src_image) { >> + struct st_texture_image *src = st_texture_image(src_image); >> + src_res = src->pt; >> + src_level = src_image->Level; >> + src_z += src_image->Face; >> + } else { >> + struct st_renderbuffer *src = st_renderbuffer(src_renderbuffer); >> + src_res = src->texture; >> + src_level = 0; >> + } >> + >> + if (dst_image) { >> + struct st_texture_image *dst = st_texture_image(dst_image); >> + dst_res = dst->pt; >> + dst_level = dst_image->Level; >> + dst_z += dst_image->Face; >> + } else { >> + struct st_renderbuffer *dst = st_renderbuffer(dst_renderbuffer); >> + dst_res = dst->texture; >> + dst_level = 0; >> + } >> + >> + u_box_2d_zslice(src_x, src_y, src_z, src_width, src_height, &box); >> + >> + copy_image(pipe, dst_res, dst_level, dst_x, dst_y, dst_z, >> + src_res, src_level, &box); >> +} > > I know you've already pushed this, but the thought just occurred to me > -- does this deal properly with texture views? I always get immensely > confused by those, but shouldn't the levels/layers be offset by the > texture object's minlayer/baselevel/minlevel somewhere? Possibly in > _mesa_CopyImageSubData?
I don't know, maybe? Intel's intel_copy_image.c doesn't ignore MinLevel, but ignores MinLayer. Meta ignores both. So does main/copyimage.c when it checks region bounds. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev