From a48cccacf3c7d655bbca42b51193100b43eeff6e Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 3 May 2016 15:21:15 -0400 Subject: [PATCH] freedreno/a4xx: fix bogus offset for f32x24s8 stencil restore fixes: $piglit/bin/fbo-clear-formats GL_ARB_depth_buffer_float Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/a4xx/fd4_emit.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/freedreno/a4xx/fd4_emit.c b/src/gallium/drivers/freedreno/a4xx/fd4_emit.c index 0144ba492ea..459494c0903 100644 --- a/src/gallium/drivers/freedreno/a4xx/fd4_emit.c +++ b/src/gallium/drivers/freedreno/a4xx/fd4_emit.c @@ -284,10 +284,6 @@ fd4_emit_gmem_restore_tex(struct fd_ringbuffer *ring, unsigned nr_bufs, for (i = 0; i < nr_bufs; i++) { if (bufs[i]) { struct fd_resource *rsc = fd_resource(bufs[i]->texture); - /* note: PIPE_BUFFER disallowed for surfaces */ - unsigned lvl = bufs[i]->u.tex.level; - struct fd_resource_slice *slice = fd_resource_slice(rsc, lvl); - uint32_t offset = fd_resource_offset(rsc, lvl, bufs[i]->u.tex.first_layer); enum pipe_format format = fd4_gmem_restore_format(bufs[i]->format); /* The restore blit_zs shader expects stencil in sampler 0, @@ -298,6 +294,11 @@ fd4_emit_gmem_restore_tex(struct fd_ringbuffer *ring, unsigned nr_bufs, format = fd4_gmem_restore_format(rsc->base.b.format); } + /* note: PIPE_BUFFER disallowed for surfaces */ + unsigned lvl = bufs[i]->u.tex.level; + struct fd_resource_slice *slice = fd_resource_slice(rsc, lvl); + unsigned offset = fd_resource_offset(rsc, lvl, bufs[i]->u.tex.first_layer); + /* z32 restore is accomplished using depth write. If there is * no stencil component (ie. PIPE_FORMAT_Z32_FLOAT_S8X24_UINT) * then no render target: -- 2.30.2