r600g: force full cache for hyperz
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 13f06783abe2c7a2786700d54930c69bd7435569..6797b22374211a4056e374ab71a001bef470c8d6 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 b054fef5e9b463cd2927c567b8b2d9fcce932ad3..4e0e4a6de6996ff9e2e60eeae7a4c10edcf98a42 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);