Drivers that doesn't support conditional rendering can't really require
respecting conditional rendering, so let's not ask for it to be
respected in the first place.
This fixes a problem where util_can_blit_via_copy_region started
unconditionally rejecting all blits that originate from
glBlitFramebuffer, even for drivers where this can't possibly be a
problem.
Fixes:
767f70dfe13 ("gallium/util: fix util_can_blit_via_copy_region for conditional rendering")
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8378>
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) {
!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 =
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