For example if width were 65, the first slice would get 96 while the
second would get 32. However the hardware appears to expect the second
pitch to be 64, based on halving the 96 (and aligning up to 32).

This fixes texelFetch piglit tests on a3xx.

Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
Cc: "10.4 10.5" <mesa-sta...@lists.freedesktop.org>
---

Still need to run this through piglit, but the initial texelFetch
results are encouraging. There still seems to be some horrible problem
with array textures e.g. sampler2DArray 100x100x5, but it actually
feels related to rendering rather than sampling.

 src/gallium/drivers/freedreno/freedreno_resource.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c 
b/src/gallium/drivers/freedreno/freedreno_resource.c
index afb396e..a49d5f5 100644
--- a/src/gallium/drivers/freedreno/freedreno_resource.c
+++ b/src/gallium/drivers/freedreno/freedreno_resource.c
@@ -213,7 +213,7 @@ setup_slices(struct fd_resource *rsc, uint32_t alignment)
        for (level = 0; level <= prsc->last_level; level++) {
                struct fd_resource_slice *slice = fd_resource_slice(rsc, level);
 
-               slice->pitch = align(width, 32);
+               slice->pitch = width = align(width, 32);
                slice->offset = size;
                if (level == 0 || layers_in_level == 1)
                        slice->size0 = align(slice->pitch * height * rsc->cpp, 
alignment);
-- 
2.0.5

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to