diff options
author | Marek Olšák <[email protected]> | 2013-04-11 14:54:40 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2013-05-15 20:19:45 +0200 |
commit | 61c995bc47b838317a4a62fba2ff2031bcb0c23e (patch) | |
tree | ce944ced016e5fbca14b36dcaf225efc3f758ad3 /src/gallium/drivers/r600/r600_state.c | |
parent | 61506257f68c18cc927a44f25344ee0584fdbd0e (diff) |
r600g: rewrite FMASK allocation, fix FMASK texturing with 2 and 4 samples
This fixes and enables texturing with compressed MSAA colorbuffers
on Evergreen and Cayman. For the first time, multisample textures work
on Cayman.
This requires the libdrm flag RADEON_SURF_FMASK.
v2: require libdrm_radeon 2.4.45
Reviewed-by: Alex Deucher <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_state.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_state.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c index 4e0e4a6de69..f0e36753d2b 100644 --- a/src/gallium/drivers/r600/r600_state.c +++ b/src/gallium/drivers/r600/r600_state.c @@ -1404,7 +1404,7 @@ static void r600_init_color_surface(struct r600_context *rctx, if (rtex->fmask_size) { color_info |= S_0280A0_TILE_MODE(V_0280A0_FRAG_ENABLE); surf->cb_color_fmask = rtex->fmask_offset >> 8; - surf->cb_color_mask |= S_028100_FMASK_TILE_MAX(slice); + surf->cb_color_mask |= S_028100_FMASK_TILE_MAX(rtex->fmask_slice_tile_max); } else { /* cmask only */ color_info |= S_0280A0_TILE_MODE(V_0280A0_CLEAR_ENABLE); } @@ -1455,7 +1455,7 @@ static void r600_init_color_surface(struct r600_context *rctx, surf->cb_color_cmask = 0; surf->cb_color_fmask = 0; surf->cb_color_mask = S_028100_CMASK_BLOCK_MAX(cmask.slice_tile_max) | - S_028100_FMASK_TILE_MAX(slice); + S_028100_FMASK_TILE_MAX(fmask.slice_tile_max); } surf->cb_color_info = color_info; |