summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2018-12-03 08:51:29 -0800
committerEric Anholt <eric@anholt.net>2018-12-07 16:48:23 -0800
commitacecee4c2db48fb36bce1170d8747c7345ba3541 (patch)
treed1342db5c21461690d928e1fa3e07780ac13e904
parent68701110517eb67ee794f2eef10c34e46ce83394 (diff)
v3d: Return the right gl_SampleMaskIn[] value.
It's supposed to be the dispatched sample mask for this pixel, not the GL state's sample mask.
-rw-r--r--src/broadcom/compiler/nir_to_vir.c3
-rw-r--r--src/broadcom/compiler/v3d_compiler.h1
-rw-r--r--src/gallium/drivers/v3d/v3d_uniforms.c8
3 files changed, 1 insertions, 11 deletions
diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c
index 13109d4f88f..446ac53e95f 100644
--- a/src/broadcom/compiler/nir_to_vir.c
+++ b/src/broadcom/compiler/nir_to_vir.c
@@ -1579,8 +1579,7 @@ ntq_emit_intrinsic(struct v3d_compile *c, nir_intrinsic_instr *instr)
break;
case nir_intrinsic_load_sample_mask_in:
- ntq_store_dest(c, &instr->dest, 0,
- vir_uniform(c, QUNIFORM_SAMPLE_MASK, 0));
+ ntq_store_dest(c, &instr->dest, 0, vir_MSF(c));
break;
case nir_intrinsic_load_front_face:
diff --git a/src/broadcom/compiler/v3d_compiler.h b/src/broadcom/compiler/v3d_compiler.h
index 219b7d56377..7423edc85c7 100644
--- a/src/broadcom/compiler/v3d_compiler.h
+++ b/src/broadcom/compiler/v3d_compiler.h
@@ -246,7 +246,6 @@ enum quniform_contents {
QUNIFORM_TEXTURE_BORDER_COLOR,
QUNIFORM_ALPHA_REF,
- QUNIFORM_SAMPLE_MASK,
/**
* Returns the the offset of the scratch buffer for register spilling.
diff --git a/src/gallium/drivers/v3d/v3d_uniforms.c b/src/gallium/drivers/v3d/v3d_uniforms.c
index d2e3e710237..ebf65b60993 100644
--- a/src/gallium/drivers/v3d/v3d_uniforms.c
+++ b/src/gallium/drivers/v3d/v3d_uniforms.c
@@ -354,10 +354,6 @@ v3d_write_uniforms(struct v3d_context *v3d, struct v3d_compiled_shader *shader,
v3d->zsa->base.alpha.ref_value);
break;
- case QUNIFORM_SAMPLE_MASK:
- cl_aligned_u32(&uniforms, v3d->sample_mask);
- break;
-
case QUNIFORM_UBO_ADDR:
if (uinfo->data[i] == 0) {
cl_aligned_reloc(&job->indirect, &uniforms,
@@ -466,10 +462,6 @@ v3d_set_shader_uniform_dirty_flags(struct v3d_compiled_shader *shader)
dirty |= VC5_DIRTY_ZSA;
break;
- case QUNIFORM_SAMPLE_MASK:
- dirty |= VC5_DIRTY_SAMPLE_STATE;
- break;
-
default:
assert(quniform_contents_is_texture_p0(shader->prog_data.base->uniforms.contents[i]));
dirty |= VC5_DIRTY_FRAGTEX | VC5_DIRTY_VERTTEX;