diff options
Diffstat (limited to 'src/gallium/drivers/vc5/vc5_draw.c')
-rw-r--r-- | src/gallium/drivers/vc5/vc5_draw.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/vc5/vc5_draw.c b/src/gallium/drivers/vc5/vc5_draw.c index f764f41ce15..555e822a719 100644 --- a/src/gallium/drivers/vc5/vc5_draw.c +++ b/src/gallium/drivers/vc5/vc5_draw.c @@ -187,8 +187,13 @@ vc5_emit_gl_shader_state(struct vc5_context *vc5, (info->mode == PIPE_PRIM_POINTS && vc5->rasterizer->base.point_size_per_vertex); + /* Must be set if the shader modifies Z, discards, or modifies + * the sample mask. For any of these cases, the fragment + * shader needs to write the Z value (even just discards). + */ shader.fragment_shader_does_z_writes = - vc5->prog.fs->prog_data.fs->writes_z; + (vc5->prog.fs->prog_data.fs->writes_z || + vc5->prog.fs->prog_data.fs->discard); shader.number_of_varyings_in_fragment_shader = vc5->prog.fs->prog_data.base->num_inputs; |