From b0c51cdc9eaef781ce03e3086219fa5b2fd9eac4 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 8 Apr 2021 13:47:12 -0400 Subject: [PATCH] zink: add debug assert to verify that zink_clear_framebuffer() is accurate this should never be called for buffers that don't have pending clears Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_clear.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gallium/drivers/zink/zink_clear.c b/src/gallium/drivers/zink/zink_clear.c index ff932b2ca78..11b048604d7 100644 --- a/src/gallium/drivers/zink/zink_clear.c +++ b/src/gallium/drivers/zink/zink_clear.c @@ -252,6 +252,12 @@ zink_clear_framebuffer(struct zink_context *ctx, unsigned clear_buffers) { unsigned to_clear = 0; struct pipe_framebuffer_state *fb_state = &ctx->fb_state; +#ifndef NDEBUG + assert(!(clear_buffers & PIPE_CLEAR_DEPTHSTENCIL) || zink_fb_clear_enabled(ctx, PIPE_MAX_COLOR_BUFS)); + for (int i = 0; i < fb_state->nr_cbufs && clear_buffers >= PIPE_CLEAR_COLOR0; i++) { + assert(!(clear_buffers & (PIPE_CLEAR_COLOR0 << i)) || zink_fb_clear_enabled(ctx, i)); + } +#endif while (clear_buffers) { struct zink_framebuffer_clear *color_clear = NULL; struct zink_framebuffer_clear *zs_clear = NULL;