summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2015-03-13 01:36:57 -0400
committerEmil Velikov <emil.l.velikov@gmail.com>2015-03-25 21:32:01 +0000
commit411f975a8129f4eb91a28a52d524059fdb174515 (patch)
treeabf2e288fa9fe00e89c1455c049891186d01951e
parent3fa76f3f79962c608f2adbdad2bd942006683690 (diff)
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@alum.mit.edu> Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org> Reviewed-by: Rob Clark <robclark@freedesktop.org> (cherry picked from commit 620e29b74821fd75b24495ab2bfddea53fc75350)
-rw-r--r--src/gallium/drivers/freedreno/freedreno_resource.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c b/src/gallium/drivers/freedreno/freedreno_resource.c
index c7b4e579992..69e54526848 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