Mesa (master): freedreno/a6xx: fix LRZ layout
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Dec 10 23:13:15 UTC 2019
Module: Mesa
Branch: master
Commit: 3c479849c5a58b246009aa3b883eedb0c0c9f51b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c479849c5a58b246009aa3b883eedb0c0c9f51b
Author: Rob Clark <robdclark at chromium.org>
Date: Tue Dec 10 14:27:20 2019 -0800
freedreno/a6xx: fix LRZ layout
Signed-off-by: Rob Clark <robdclark at chromium.org>
---
src/gallium/drivers/freedreno/a6xx/fd6_resource.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_resource.c b/src/gallium/drivers/freedreno/a6xx/fd6_resource.c
index f75ca0666be..256aba0cd55 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_resource.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_resource.c
@@ -295,21 +295,22 @@ setup_lrz(struct fd_resource *rsc)
struct fd_screen *screen = fd_screen(rsc->base.screen);
const uint32_t flags = DRM_FREEDRENO_GEM_CACHE_WCOMBINE |
DRM_FREEDRENO_GEM_TYPE_KMEM; /* TODO */
- unsigned lrz_pitch = align(DIV_ROUND_UP(rsc->base.width0, 8), 64);
- unsigned lrz_height = DIV_ROUND_UP(rsc->base.height0, 8);
+ unsigned width0 = rsc->base.width0;
+ unsigned height0 = rsc->base.height0;
/* LRZ buffer is super-sampled: */
switch (rsc->base.nr_samples) {
case 4:
- lrz_pitch *= 2;
- /* fallthrough */
+ width0 *= 2;
+ /* fallthru */
case 2:
- lrz_height *= 2;
+ height0 *= 2;
}
- unsigned size = lrz_pitch * lrz_height * 2;
+ unsigned lrz_pitch = align(DIV_ROUND_UP(width0, 8), 32);
+ unsigned lrz_height = align(DIV_ROUND_UP(height0, 8), 16);
- size += 0x1000; /* for GRAS_LRZ_FAST_CLEAR_BUFFER */
+ unsigned size = lrz_pitch * lrz_height * 2;
rsc->lrz_height = lrz_height;
rsc->lrz_width = lrz_pitch;
More information about the mesa-commit
mailing list