zink: add a flag for disabling conditional render during blit
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 18 Jun 2021 15:55:54 +0000 (11:55 -0400)
committerMarge Bot <eric+marge@anholt.net>
Tue, 22 Jun 2021 12:45:39 +0000 (12:45 +0000)
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11466>

src/gallium/drivers/zink/zink_blit.c
src/gallium/drivers/zink/zink_context.h

index 45a9cb6..3e216a1 100644 (file)
@@ -1,5 +1,6 @@
 #include "zink_context.h"
 #include "zink_helpers.h"
+#include "zink_query.h"
 #include "zink_resource.h"
 #include "zink_screen.h"
 
@@ -339,6 +340,9 @@ zink_blit_begin(struct zink_context *ctx, enum zink_blit_flags flags)
                                                ctx->di.num_sampler_views[PIPE_SHADER_FRAGMENT],
                                                ctx->sampler_views[PIPE_SHADER_FRAGMENT]);
    }
+
+   if (flags & ZINK_BLIT_NO_COND_RENDER && ctx->render_condition_active)
+      zink_stop_conditional_render(ctx);
 }
 
 bool
index 3a22eee..57a72e0 100644 (file)
@@ -62,6 +62,7 @@ enum zink_blit_flags {
    ZINK_BLIT_SAVE_FS = 1 << 1,
    ZINK_BLIT_SAVE_FB = 1 << 2,
    ZINK_BLIT_SAVE_TEXTURES = 1 << 3,
+   ZINK_BLIT_NO_COND_RENDER = 1 << 4,
 };
 
 struct zink_sampler_state {