aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2019-08-27 20:29:11 -0400
committerMarek Olšák <[email protected]>2019-09-09 23:43:03 -0400
commit7d4a10a29f6f667f2a4a89ebc87df4c01ccb3597 (patch)
tree258980d9f88123482eccff99f34088a84f251f55 /src/gallium/winsys
parent66338631502b572594dce61ddce0406f0eaac5c3 (diff)
ac/surface: add RADEON_SURF_NO_FMASK
This controls FMASK and CMASK computation for MSAA. Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_surface.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_surface.c b/src/gallium/winsys/radeon/drm/radeon_drm_surface.c
index d33c4c7132d..e09805784e0 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_surface.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_surface.c
@@ -307,7 +307,7 @@ static int radeon_winsys_surface_init(struct radeon_winsys *rws,
/* Compute FMASK. */
if (ws->gen == DRV_SI &&
tex->nr_samples >= 2 &&
- !(flags & (RADEON_SURF_Z_OR_SBUFFER | RADEON_SURF_FMASK))) {
+ !(flags & (RADEON_SURF_Z_OR_SBUFFER | RADEON_SURF_FMASK | RADEON_SURF_NO_FMASK))) {
/* FMASK is allocated like an ordinary texture. */
struct pipe_resource templ = *tex;
struct radeon_surf fmask = {};
@@ -351,7 +351,8 @@ static int radeon_winsys_surface_init(struct radeon_winsys *rws,
surf_ws->u.legacy.fmask.pitch_in_pixels = fmask.u.legacy.level[0].nblk_x;
}
- if (ws->gen == DRV_SI) {
+ if (ws->gen == DRV_SI &&
+ (tex->nr_samples <= 1 || surf_ws->fmask_size)) {
struct ac_surf_config config;
/* Only these fields need to be set for the CMASK computation. */