Mesa (master): freedreno: fix slice pitch calculations

Ilia Mirkin imirkin at kemper.freedesktop.org
Fri Mar 13 20:06:35 UTC 2015


Module: Mesa
Branch: master
Commit: 620e29b74821fd75b24495ab2bfddea53fc75350
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=620e29b74821fd75b24495ab2bfddea53fc75350

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Fri Mar 13 01:36:57 2015 -0400

freedreno: fix slice pitch calculations

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 below a certain size. Going
higher they break again, but most likely due to unrelated reasons.

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Cc: "10.4 10.5" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Rob Clark <robclark at freedesktop.org>

---

 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 c7b4e57..69e5452 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;
 		/* 1d array, 2d array, 3d textures (but not cube!) must all have the
 		 * same layer size for each miplevel on a3xx. These are also the




More information about the mesa-commit mailing list