If I understand your patch correctly, the only effect is that a larger HTILE buffer is allocated, right? I'm surprised that only hangs were reported and not VM faults. We should really introduce guard pages / gaps between mapped buffers.

It seems like htile.{pitch, height, xalign, yalign} are never used (outside of some debug printing). I think it's a good idea to remove them (in a separate patch of course).

In any case, this patch is

Reviewed-by: Nicolai Hähnle <[email protected]>

On 15.03.2016 16:47, Marek Olšák wrote:
From: Marek Olšák <[email protected]>

Cc: 11.1 11.2 <[email protected]>
---
  src/gallium/drivers/radeon/r600_texture.c | 10 ++++++++--
  1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index 115c728..3957e71 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -629,8 +629,14 @@ static unsigned r600_texture_get_htile_size(struct 
r600_common_screen *rscreen,
            rscreen->info.drm_major == 2 && rscreen->info.drm_minor < 38)
                return 0;

-       /* Overalign HTILE on Stoney to fix 
piglit/depthstencil-render-miplevels 585. */
-       if (rscreen->family == CHIP_STONEY)
+       /* Overalign HTILE on P2 configs to work around GPU hangs in
+        * piglit/depthstencil-render-miplevels 585.
+        *
+        * This has been confirmed to help Kabini & Stoney, where the hangs
+        * are always reproducible. I think I have seen the test hang
+        * on Carrizo too, though it was very rare there.
+        */
+       if (rscreen->chip_class >= CIK && num_pipes < 4)
                num_pipes = 4;

        switch (num_pipes) {

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to