asahi: Check-box implement rasterizer discard
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Wed, 23 Nov 2022 19:46:22 +0000 (14:46 -0500)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sun, 11 Dec 2022 02:51:04 +0000 (21:51 -0500)
Passes dEQP-GLES3.functional.rasterizer_discard.*

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20123>

src/gallium/drivers/asahi/agx_state.c

index e0b59ba..ae140c2 100644 (file)
@@ -2041,6 +2041,10 @@ agx_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info,
    if (agx_scissor_culls_everything(ctx))
           return;
 
+   /* We don't support side effects in vertex stages, so this is trivial */
+   if (ctx->rast->base.rasterizer_discard)
+      return;
+
    /* Dirty track the reduced prim: lines vs points vs triangles */
    enum pipe_prim_type reduced_prim = u_reduced_prim(info->mode);
    if (reduced_prim != batch->reduced_prim) ctx->dirty |= AGX_DIRTY_PRIM;