summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-07-27 16:02:09 -0700
committerKenneth Graunke <[email protected]>2019-02-21 10:26:08 -0800
commit80c70966728f843f0fffe9236fa1b04205d44160 (patch)
treebffea09832854cca8552dc7562968ba14d2f4513 /src
parente990558152ba64b26e991409c5d783357ef1aecb (diff)
iris: fix sample mask
0xffffffff does not mean 1, it means enable as many as there actually are. we don't get set_sample_mask() calls until some masking is actually applied...i.e. it doesn't get updated based on # of samples in the FBO changing.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/iris/iris_state.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index fb089664147..afe95d4f6fe 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -1208,7 +1208,7 @@ iris_set_sample_mask(struct pipe_context *ctx, unsigned sample_mask)
{
struct iris_context *ice = (struct iris_context *) ctx;
- ice->state.sample_mask = sample_mask == 0xffffffff ? 1 : sample_mask;
+ ice->state.sample_mask = sample_mask & 0xffff;
ice->state.dirty |= IRIS_DIRTY_SAMPLE_MASK;
}
@@ -3882,6 +3882,7 @@ genX(init_state)(struct iris_context *ice)
ice->state.dirty = ~0ull;
+ ice->state.sample_mask = 0xffff;
ice->state.num_viewports = 1;
ice->state.genx = calloc(1, sizeof(struct iris_genx_state));