summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorAlex Deucher <[email protected]>2013-01-07 15:21:46 -0500
committerAlex Deucher <[email protected]>2013-01-07 15:21:46 -0500
commit4332f6fc185f968e7563e748b8c949021937c935 (patch)
tree5956957ed134955467ce1f274492bcc3f65e9d7f /src/gallium
parentca474f98f2cda5cb333e9f851c7e0e31c9a6f823 (diff)
r600g: set the virtual address for the htile buffer
Fixes cayman and TN with htile enabled. Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=59089 https://bugs.freedesktop.org/show_bug.cgi?id=58667 Possibly others. Signed-off-by: Alex Deucher <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/r600/evergreen_state.c3
-rw-r--r--src/gallium/drivers/r600/r600_state.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 032af78c1f1..7635f867210 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -1548,8 +1548,9 @@ static void evergreen_init_depth_surface(struct r600_context *rctx,
surf->htile_enabled = 0;
/* use htile only for first level */
if (rtex->htile && !level) {
+ uint64_t va = r600_resource_va(rctx->screen, rtex->htile);
surf->htile_enabled = 1;
- surf->db_htile_data_base = 0;
+ surf->db_htile_data_base = va >> 8;
surf->db_htile_surface = S_028ABC_HTILE_WIDTH(1) |
S_028ABC_HTILE_HEIGHT(1) |
S_028ABC_LINEAR(1);
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index ef4edca807a..0cfc4e4ee68 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -1443,8 +1443,9 @@ static void r600_init_depth_surface(struct r600_context *rctx,
surf->htile_enabled = 0;
/* use htile only for first level */
if (rtex->htile && !level) {
+ uint64_t va = r600_resource_va(rctx->screen, rtex->htile);
surf->htile_enabled = 1;
- surf->db_htile_data_base = 0;
+ surf->db_htile_data_base = va >> 8;
surf->db_htile_surface = S_028D24_HTILE_WIDTH(1) |
S_028D24_HTILE_HEIGHT(1) |
S_028D24_LINEAR(1);