[Mesa-dev] [PATCH] st/mesa: only minify depth for 3d targets

Dave Airlie airlied at gmail.com
Sun Mar 20 03:20:42 UTC 2016


On 20 March 2016 at 11:28, Ilia Mirkin <imirkin at alum.mit.edu> 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 <imirkin at alum.mit.edu>
> Cc: "11.1 11.2" <mesa-stable at lists.freedesktop.org>

Reviewed-by: Dave Airlie <airlied at redhat.com>

> ---
>  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
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list