On 20 March 2016 at 11:28, Ilia Mirkin <[email protected]> wrote: > We make sure that that image depth matches the level's depth before > copying it into place. However we should only be minifying the first > level's depth for 3d textures - array textures have the same depth for > all levels. > > This fixes tests such as > dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.* and I > suspect account for a number of other odd situations I've run into where > level > 0 of array textures was messed up. > > Signed-off-by: Ilia Mirkin <[email protected]> > Cc: "11.1 11.2" <[email protected]>
Reviewed-by: Dave Airlie <[email protected]> > --- > src/mesa/state_tracker/st_cb_texture.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/state_tracker/st_cb_texture.c > b/src/mesa/state_tracker/st_cb_texture.c > index bffa4d0..460c179 100644 > --- a/src/mesa/state_tracker/st_cb_texture.c > +++ b/src/mesa/state_tracker/st_cb_texture.c > @@ -2886,10 +2886,13 @@ st_finalize_texture(struct gl_context *ctx, > /* Need to import images in main memory or held in other textures. > */ > if (stImage && stObj->pt != stImage->pt) { > + GLuint depth = stObj->depth0; > + if (stObj->base.Target == GL_TEXTURE_3D) > + depth = u_minify(depth, level); > if (level == 0 || > (stImage->base.Width == u_minify(stObj->width0, level) && > stImage->base.Height == u_minify(stObj->height0, level) && > - stImage->base.Depth == u_minify(stObj->depth0, level))) { > + stImage->base.Depth == depth)) { > /* src image fits expected dest mipmap level size */ > copy_image_data_to_texture(st, stObj, level, stImage); > } > -- > 2.7.3 > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
