a5xx: improve 3d texture sampling
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 4 Jul 2017 15:48:25 +0000 (11:48 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Tue, 4 Jul 2017 22:27:57 +0000 (18:27 -0400)
At least the first level works now. Eventually the later levels stop
working, there appears to be some alignment issue. But this improves the
situation immensely.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Acked-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/a5xx/fd5_texture.c

index a546cfc33292915b2cb29f43090a8490e7d34e17..87b69ea1c112a6402a1696214c2bcc0ad6bc9958 100644 (file)
@@ -221,7 +221,6 @@ fd5_sampler_view_create(struct pipe_context *pctx, struct pipe_resource *prsc,
        struct fd5_pipe_sampler_view *so = CALLOC_STRUCT(fd5_pipe_sampler_view);
        struct fd_resource *rsc = fd_resource(prsc);
        unsigned lvl, layers;
-       uint32_t sz2 = 0;
 
        if (!so)
                return NULL;
@@ -298,8 +297,6 @@ fd5_sampler_view_create(struct pipe_context *pctx, struct pipe_resource *prsc,
                        A5XX_TEX_CONST_5_DEPTH(layers / 6);
                break;
        case PIPE_TEXTURE_3D:
-               while (lvl < cso->u.tex.last_level && sz2 != rsc->slices[lvl+1].size0)
-                       sz2 = rsc->slices[++lvl].size0;
                so->texconst3 =
                        A5XX_TEX_CONST_3_ARRAY_PITCH(rsc->slices[lvl].size0);
                so->texconst5 =