From: Marek Olšák <marek.ol...@amd.com>

No effect, but this is what we should be doing.
---
 src/gallium/drivers/r600/evergreen_state.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c 
b/src/gallium/drivers/r600/evergreen_state.c
index 7065af9..5c8fd0d 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -1028,7 +1028,10 @@ void evergreen_init_color_surface(struct r600_context 
*rctx,
        macro_aspect = rtex->surface.mtilea;
        bankw = rtex->surface.bankw;
        bankh = rtex->surface.bankh;
-       fmask_bankh = rtex->fmask.bank_height;
+       if (rtex->fmask.size)
+               fmask_bankh = rtex->fmask.bank_height;
+       else
+               fmask_bankh = rtex->surface.bankh;
        tile_split = eg_tile_split(tile_split);
        macro_aspect = eg_macro_tile_aspect(macro_aspect);
        bankw = eg_bank_wh(bankw);
@@ -1149,10 +1152,11 @@ void evergreen_init_color_surface(struct r600_context 
*rctx,
        surf->cb_color_attrib = color_attrib;
        if (rtex->fmask.size) {
                surf->cb_color_fmask = (base_offset + rtex->fmask.offset) >> 8;
+               surf->cb_color_fmask_slice = 
S_028C88_TILE_MAX(rtex->fmask.slice_tile_max);
        } else {
                surf->cb_color_fmask = surf->cb_color_base;
+               surf->cb_color_fmask_slice = S_028C88_TILE_MAX(slice);
        }
-       surf->cb_color_fmask_slice = 
S_028C88_TILE_MAX(rtex->fmask.slice_tile_max);
 
        surf->color_initialized = true;
 }
-- 
2.1.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to