radeon: enable Hyper-Z on r600g and radeonsi by default
authorAndreas Boll <andreas.boll.dev@gmail.com>
Thu, 23 Oct 2014 12:52:55 +0000 (14:52 +0200)
committerAndreas Boll <andreas.boll.dev@gmail.com>
Fri, 24 Oct 2014 07:11:51 +0000 (09:11 +0200)
This reverts commit 01e637114914453451becc0dc8afe60faff48d84.
Since then many Hyper-Z issues have been fixed or worked around.

Enable Hyper-Z by default so that we get enough feedback for the upcoming
mesa 10.4 release.

If you have issues with Hyper-Z try to disable Hyper-Z using the enviroment
variable R600_DEBUG=nohyperz and please report the issue on the bugtracker.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75011
See also: https://bugs.freedesktop.org/show_bug.cgi?id=75112

Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/radeon/r600_pipe_common.c
src/gallium/drivers/radeon/r600_pipe_common.h
src/gallium/drivers/radeon/r600_texture.c

index c7945305182ce938d90628a8ffe329f9aada9ad7..c5f01c09e92eb9dbfa5ad5deee4a2660a654be13 100644 (file)
@@ -539,8 +539,8 @@ struct pipe_screen *r600_screen_create(struct radeon_winsys *ws)
                rscreen->b.debug_flags |= DBG_COMPUTE;
        if (debug_get_bool_option("R600_DUMP_SHADERS", FALSE))
                rscreen->b.debug_flags |= DBG_FS | DBG_VS | DBG_GS | DBG_PS | DBG_CS;
-       if (debug_get_bool_option("R600_HYPERZ", FALSE))
-               rscreen->b.debug_flags |= DBG_HYPERZ;
+       if (!debug_get_bool_option("R600_HYPERZ", TRUE))
+               rscreen->b.debug_flags |= DBG_NO_HYPERZ;
        if (debug_get_bool_option("R600_LLVM", FALSE))
                rscreen->b.debug_flags |= DBG_LLVM;
 
index ae203b66855a0c54223178422d9cb434d53f5b54..a6dbd78036d82ea272b7e81b983d550ad0238a12 100644 (file)
@@ -314,7 +314,7 @@ static const struct debug_named_value common_debug_options[] = {
 
        /* features */
        { "nodma", DBG_NO_ASYNC_DMA, "Disable asynchronous DMA" },
-       { "hyperz", DBG_HYPERZ, "Enable Hyper-Z" },
+       { "nohyperz", DBG_NO_HYPERZ, "Disable Hyper-Z" },
        /* GL uses the word INVALIDATE, gallium uses the word DISCARD */
        { "noinvalrange", DBG_NO_DISCARD_RANGE, "Disable handling of INVALIDATE_RANGE map flags" },
        { "no2d", DBG_NO_2D_TILING, "Disable 2D tiling" },
index 4651bf8b1475f675dbbd9b5993a303749018c917..dfd8fffa59f90386528fe4a622b0b8fa58495e12 100644 (file)
@@ -97,7 +97,7 @@
 #define DBG_CS                 (1 << 9)
 /* features */
 #define DBG_NO_ASYNC_DMA       (1 << 10)
-#define DBG_HYPERZ             (1 << 11)
+#define DBG_NO_HYPERZ          (1 << 11)
 #define DBG_NO_DISCARD_RANGE   (1 << 12)
 #define DBG_NO_2D_TILING       (1 << 13)
 #define DBG_NO_TILING          (1 << 14)
index 1d4e966b158815942759da95b30babdaa6e1c8be..fdf4d763f2d9b1f23116c8d397cbe5b336a2bfe3 100644 (file)
@@ -603,7 +603,7 @@ r600_texture_create_object(struct pipe_screen *screen,
        if (rtex->is_depth) {
                if (!(base->flags & (R600_RESOURCE_FLAG_TRANSFER |
                                     R600_RESOURCE_FLAG_FLUSHED_DEPTH)) &&
-                   (rscreen->debug_flags & DBG_HYPERZ)) {
+                   !(rscreen->debug_flags & DBG_NO_HYPERZ)) {
 
                        r600_texture_allocate_htile(rscreen, rtex);
                }