diff options
author | Marek Olšák <[email protected]> | 2017-03-28 03:34:06 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-03-31 21:41:57 +0200 |
commit | 6ab20427612704ae3b84ca014d81093c3fd33232 (patch) | |
tree | 786a357403afb0f3c65321301bc98a31c02f501b /src/gallium/winsys | |
parent | d4bb4583b014afa1609ad5b9f8491edb7dfa1746 (diff) |
radeonsi/gfx9: fix and enable single-sample CMASK fast clear
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r-- | src/gallium/winsys/amdgpu/drm/amdgpu_surface.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_surface.c b/src/gallium/winsys/amdgpu/drm/amdgpu_surface.c index 1e63d646710..4d532e397d0 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_surface.c +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_surface.c @@ -655,6 +655,13 @@ static int gfx9_compute_miptree(struct amdgpu_winsys *ws, surf->u.gfx9.surf.swizzle_mode = in->swizzleMode; surf->u.gfx9.surf.epitch = out.epitchIsHeight ? out.mipChainHeight - 1 : out.mipChainPitch - 1; + + /* CMASK fast clear uses these even if FMASK isn't allocated. + * FMASK only supports the Z swizzle modes, whose numbers are multiples of 4. + */ + surf->u.gfx9.fmask.swizzle_mode = surf->u.gfx9.surf.swizzle_mode & ~0x3; + surf->u.gfx9.fmask.epitch = surf->u.gfx9.surf.epitch; + surf->u.gfx9.surf_slice_size = out.sliceSize; surf->u.gfx9.surf_pitch = out.pitch; surf->u.gfx9.surf_height = out.height; |