r600g: force full cache for hyperz 64/6264/1
authorJerome Glisse <jglisse@redhat.com>
Wed, 24 Apr 2013 23:15:52 +0000 (19:15 -0400)
committerJerome Glisse <jglisse@redhat.com>
Mon, 29 Apr 2013 14:06:29 +0000 (10:06 -0400)
Seems that in some case allowing half cache usage confuse the gpu
and trigger lockup. Force full cache use.

Should fix :
https://bugs.freedesktop.org/show_bug.cgi?id=59592
https://bugs.freedesktop.org/show_bug.cgi?id=60848
https://bugs.freedesktop.org/show_bug.cgi?id=60969
https://bugs.freedesktop.org/show_bug.cgi?id=61747
https://bugs.freedesktop.org/show_bug.cgi?id=62466
https://bugs.freedesktop.org/show_bug.cgi?id=62669
https://bugs.freedesktop.org/show_bug.cgi?id=62721
https://bugs.freedesktop.org/show_bug.cgi?id=63124

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_state.c

index 13f0678..6797b22 100644 (file)
@@ -1691,6 +1691,7 @@ static void evergreen_init_depth_surface(struct r600_context *rctx,
                surf->db_htile_data_base = va >> 8;
                surf->db_htile_surface = S_028ABC_HTILE_WIDTH(1) |
                                        S_028ABC_HTILE_HEIGHT(1) |
+                                       S_028ABC_FULL_CACHE(1) |
                                        S_028ABC_LINEAR(1);
                surf->db_depth_info |= S_028040_TILE_SURFACE_ENABLE(1);
                surf->db_preload_control = 0;
index b054fef..4e0e4a6 100644 (file)
@@ -1532,6 +1532,7 @@ static void r600_init_depth_surface(struct r600_context *rctx,
                surf->db_htile_data_base = va >> 8;
                surf->db_htile_surface = S_028D24_HTILE_WIDTH(1) |
                                        S_028D24_HTILE_HEIGHT(1) |
+                                       S_028D24_FULL_CACHE(1) |
                                        S_028D24_LINEAR(1);
                /* preload is not working properly on r6xx/r7xx */
                surf->db_depth_info |= S_028010_TILE_SURFACE_ENABLE(1);