diff --git a/src/mesa/state_tracker/st_cb_blit.c b/src/mesa/state_tracker/st_cb_blit.c index cf55eff6e5c..fd82a7f9dd1 100644 --- a/src/mesa/state_tracker/st_cb_blit.c +++ b/src/mesa/state_tracker/st_cb_blit.c @@ -170,7 +170,7 @@ st_BlitFramebuffer(struct gl_context *ctx, st_window_rectangles_to_blit(ctx, &blit); blit.filter = pFilter; - blit.render_condition_enable = TRUE; + blit.render_condition_enable = st->has_conditional_render; blit.alpha_blend = FALSE; if (mask & GL_COLOR_BUFFER_BIT) { diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 733a8e5ead6..cf4ae0aff26 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -709,6 +709,8 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe, !screen->get_param(screen, PIPE_CAP_CLIP_PLANES); st->prefer_real_buffer_in_constbuf0 = screen->get_param(screen, PIPE_CAP_PREFER_REAL_BUFFER_IN_CONSTBUF0); + st->has_conditional_render = + screen->get_param(screen, PIPE_CAP_CONDITIONAL_RENDER); st->allow_st_finalize_nir_twice = screen->finalize_nir != NULL; st->has_hw_atomics = diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h index f694e5825a1..2f358bf302b 100644 --- a/src/mesa/state_tracker/st_context.h +++ b/src/mesa/state_tracker/st_context.h @@ -159,6 +159,7 @@ struct st_context boolean lower_two_sided_color; boolean lower_ucp; boolean prefer_real_buffer_in_constbuf0; + boolean has_conditional_render; /* There are consequences for drivers wanting to call st_finalize_nir * twice, once before shader caching and once after lowering for shader