freedreno: Fix for multi-draw blits

We have some logic to detect when u_blitter generated draws overwrite
the entire render-target, so we know we can discard anything previous.
But some blits (like multi-sample) do multiple draws.  We don't want to
discard the earlier draws from the same blit.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402>
This commit is contained in:
Rob Clark
2021-06-16 12:13:21 -07:00
committed by Marge Bot
parent 9629f3aa46
commit 6ca9f4f5ca
3 changed files with 2 additions and 104 deletions
@@ -111,9 +111,6 @@ spec@arb_depth_buffer_float@fbo-clear-formats@GL_DEPTH32F_STENCIL8,Fail
spec@arb_depth_buffer_float@fbo-clear-formats@GL_DEPTH_COMPONENT32F,Fail
spec@arb_depth_buffer_float@fbo-clear-formats stencil,Fail
spec@arb_depth_buffer_float@fbo-clear-formats stencil@GL_DEPTH32F_STENCIL8,Fail
spec@arb_depth_buffer_float@fbo-depth-gl_depth32f_stencil8-blit,Fail
spec@arb_depth_buffer_float@fbo-depth-gl_depth32f_stencil8-copypixels,Fail
spec@arb_depth_buffer_float@fbo-depth-gl_depth_component32f-blit,Fail
spec@arb_depth_buffer_float@fbo-depth-gl_depth_component32f-copypixels,Fail
spec@arb_depth_buffer_float@fbo-depthstencil-gl_depth32f_stencil8-blit,Fail
spec@arb_depth_buffer_float@fbo-depthstencil-gl_depth32f_stencil8-copypixels,Fail
@@ -124,11 +121,8 @@ spec@arb_depth_texture@fbo-clear-formats@GL_DEPTH_COMPONENT,Fail
spec@arb_depth_texture@fbo-clear-formats@GL_DEPTH_COMPONENT16,Fail
spec@arb_depth_texture@fbo-clear-formats@GL_DEPTH_COMPONENT24,Fail
spec@arb_depth_texture@fbo-clear-formats@GL_DEPTH_COMPONENT32,Fail
spec@arb_depth_texture@fbo-depth-gl_depth_component16-blit,Fail
spec@arb_depth_texture@fbo-depth-gl_depth_component16-copypixels,Fail
spec@arb_depth_texture@fbo-depth-gl_depth_component24-blit,Fail
spec@arb_depth_texture@fbo-depth-gl_depth_component24-copypixels,Fail
spec@arb_depth_texture@fbo-depth-gl_depth_component32-blit,Fail
spec@arb_depth_texture@fbo-depth-gl_depth_component32-copypixels,Fail
spec@arb_direct_state_access@copytexturesubimage,Fail
spec@arb_direct_state_access@gettextureimage-formats,Crash
@@ -149,38 +143,6 @@ spec@arb_framebuffer_object@arb_framebuffer_object-depth-stencil-blit stencil gl
spec@arb_framebuffer_object@arb_framebuffer_object-depth-stencil-blit stencil gl_stencil_index8,Fail
spec@arb_framebuffer_object@framebuffer-blit-levels draw stencil,Fail
spec@arb_framebuffer_object@framebuffer-blit-levels read stencil,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear_to_srgb msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear_to_srgb msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear_to_srgb msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear_to_srgb msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb_to_linear msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb_to_linear msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb_to_linear msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb_to_linear msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit texture linear msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit texture linear msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit texture linear msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit texture linear msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit texture linear_to_srgb msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit texture linear_to_srgb msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit texture linear_to_srgb msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit texture linear_to_srgb msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit texture srgb msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit texture srgb msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit texture srgb msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit texture srgb msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit texture srgb_to_linear msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit texture srgb_to_linear msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit texture srgb_to_linear msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit texture srgb_to_linear msaa enabled render,Fail
spec@arb_map_buffer_alignment@arb_map_buffer_alignment-map-invalidate-range,Fail
spec@arb_map_buffer_range@copybuffersubdata offset=0,Fail
spec@arb_multi_draw_indirect@gl-3.0-multidrawarrays-vertexid -indirect,Crash
@@ -282,8 +244,6 @@ spec@ext_packed_depth_stencil@fbo-clear-formats@GL_DEPTH24_STENCIL8,Fail
spec@ext_packed_depth_stencil@fbo-clear-formats@GL_DEPTH_STENCIL,Fail
spec@ext_packed_depth_stencil@fbo-clear-formats stencil,Fail
spec@ext_packed_depth_stencil@fbo-clear-formats stencil@GL_DEPTH24_STENCIL8,Fail
spec@ext_packed_depth_stencil@fbo-depth-gl_depth24_stencil8-blit,Fail
spec@ext_packed_depth_stencil@fbo-depth-gl_depth24_stencil8-copypixels,Fail
spec@ext_packed_depth_stencil@fbo-depthstencil-gl_depth24_stencil8-blit,Fail
spec@ext_packed_depth_stencil@fbo-depthstencil-gl_depth24_stencil8-copypixels,Fail
spec@ext_packed_depth_stencil@fbo-stencil-gl_depth24_stencil8-blit,Fail
@@ -404,8 +364,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb,Fail
spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb@sRGB decode,Fail
spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail
spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail
spec@nv_conditional_render@copyteximage,Fail
spec@nv_conditional_render@copytexsubimage,Fail
spec@nv_copy_depth_to_color@nv_copy_depth_to_color,Crash
spec@nv_copy_depth_to_color@nv_copy_depth_to_color 0 0x223344ff,Crash
spec@nv_copy_depth_to_color@nv_copy_depth_to_color 0 0x76356278,Crash
@@ -56,38 +56,6 @@ spec@arb_direct_state_access@transformfeedback-bufferrange,Fail
spec@arb_direct_state_access@transformfeedback-bufferrange@general test,Fail
spec@arb_es2_compatibility@texwrap formats bordercolor-swizzled,Fail
spec@arb_es2_compatibility@texwrap formats bordercolor-swizzled@GL_RGB565- swizzled- border color only,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear_to_srgb msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear_to_srgb msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear_to_srgb msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer linear_to_srgb msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb_to_linear msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb_to_linear msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb_to_linear msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit renderbuffer srgb_to_linear msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit texture linear msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit texture linear msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit texture linear msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit texture linear msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit texture linear_to_srgb msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit texture linear_to_srgb msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit texture linear_to_srgb msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit texture linear_to_srgb msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit texture srgb msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit texture srgb msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit texture srgb msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit texture srgb msaa enabled render,Fail
spec@arb_framebuffer_srgb@blit texture srgb_to_linear msaa disabled clear,Fail
spec@arb_framebuffer_srgb@blit texture srgb_to_linear msaa disabled render,Fail
spec@arb_framebuffer_srgb@blit texture srgb_to_linear msaa enabled clear,Fail
spec@arb_framebuffer_srgb@blit texture srgb_to_linear msaa enabled render,Fail
spec@arb_occlusion_query@occlusion_query_order,Fail
spec@arb_point_sprite@arb_point_sprite-interactions 1.0,Fail
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex,Fail
@@ -98,9 +66,6 @@ spec@arb_program_interface_query@arb_program_interface_query-resource-query,Fail
spec@arb_program_interface_query@arb_program_interface_query-resource-query@GL_ATOMIC_COUNTER_BUFFER,Fail
spec@arb_program_interface_query@arb_program_interface_query-resource-query@GL_BUFFER_VARIABLE,Fail
spec@arb_program_interface_query@arb_program_interface_query-resource-query@GL_SHADER_STORAGE_BLOCK,Fail
spec@arb_sample_shading@builtin-gl-sample-id 4,Fail
spec@arb_sample_shading@builtin-gl-sample-mask 2,Fail
spec@arb_sample_shading@builtin-gl-sample-mask 4,Fail
spec@arb_sample_shading@samplemask 2@0.500000 mask_in_one,Fail
spec@arb_sample_shading@samplemask 2@1.000000 mask_in_one,Fail
spec@arb_sample_shading@samplemask 2 all@0.500000 mask_in_one,Fail
@@ -286,7 +251,6 @@ spec@ext_framebuffer_multisample@alpha-to-coverage-dual-src-blend 2,Fail
spec@ext_framebuffer_multisample@alpha-to-coverage-dual-src-blend 4,Fail
spec@ext_framebuffer_multisample@alpha-to-coverage-no-draw-buffer-zero 2,Fail
spec@ext_framebuffer_multisample@alpha-to-coverage-no-draw-buffer-zero 4,Fail
spec@ext_framebuffer_multisample@blit-mismatched-formats,Fail
spec@ext_framebuffer_multisample@draw-buffers-alpha-to-coverage 2,Fail
spec@ext_framebuffer_multisample@draw-buffers-alpha-to-coverage 4,Fail
spec@ext_framebuffer_multisample@enable-flag,Fail
@@ -298,36 +262,10 @@ spec@ext_framebuffer_multisample@interpolation 4 centroid-deriv-disabled,Fail
spec@ext_framebuffer_multisample@interpolation 4 centroid-disabled,Fail
spec@ext_framebuffer_multisample@interpolation 4 non-centroid-deriv-disabled,Fail
spec@ext_framebuffer_multisample@interpolation 4 non-centroid-disabled,Fail
spec@ext_framebuffer_multisample@multisample-blit 2 color,Fail
spec@ext_framebuffer_multisample@multisample-blit 2 color linear,Fail
spec@ext_framebuffer_multisample@multisample-blit 2 depth,Fail
spec@ext_framebuffer_multisample@multisample-blit 2 stencil,Fail
spec@ext_framebuffer_multisample@multisample-blit 4 color,Fail
spec@ext_framebuffer_multisample@multisample-blit 4 color linear,Fail
spec@ext_framebuffer_multisample@multisample-blit 4 depth,Fail
spec@ext_framebuffer_multisample@multisample-blit 4 stencil,Fail
spec@ext_framebuffer_multisample@no-color 2 depth combined,Fail
spec@ext_framebuffer_multisample@no-color 2 depth-computed combined,Fail
spec@ext_framebuffer_multisample@no-color 2 depth-computed single,Fail
spec@ext_framebuffer_multisample@no-color 2 depth single,Fail
spec@ext_framebuffer_multisample@no-color 2 stencil combined,Fail
spec@ext_framebuffer_multisample@no-color 2 stencil single,Fail
spec@ext_framebuffer_multisample@no-color 4 depth combined,Fail
spec@ext_framebuffer_multisample@no-color 4 depth-computed combined,Fail
spec@ext_framebuffer_multisample@no-color 4 depth-computed single,Fail
spec@ext_framebuffer_multisample@no-color 4 depth single,Fail
spec@ext_framebuffer_multisample@no-color 4 stencil combined,Fail
spec@ext_framebuffer_multisample@no-color 4 stencil single,Fail
spec@ext_framebuffer_multisample@sample-alpha-to-coverage 2 color,Fail
spec@ext_framebuffer_multisample@sample-alpha-to-coverage 2 depth,Fail
spec@ext_framebuffer_multisample@sample-alpha-to-coverage 4 color,Fail
spec@ext_framebuffer_multisample@sample-alpha-to-coverage 4 depth,Fail
spec@ext_framebuffer_multisample@unaligned-blit 2 color msaa,Fail
spec@ext_framebuffer_multisample@unaligned-blit 2 depth msaa,Fail
spec@ext_framebuffer_multisample@unaligned-blit 2 stencil msaa,Fail
spec@ext_framebuffer_multisample@unaligned-blit 4 color msaa,Fail
spec@ext_framebuffer_multisample@unaligned-blit 4 depth msaa,Fail
spec@ext_framebuffer_multisample@unaligned-blit 4 stencil msaa,Fail
spec@ext_framebuffer_object@fbo-alphatest-nocolor,Fail
spec@ext_framebuffer_object@fbo-alphatest-nocolor-ff,Fail
spec@ext_framebuffer_object@fbo-blending-format-quirks,Fail
@@ -347,6 +347,8 @@ fd_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info,
batch->back_blit = ctx->in_shadow;
batch->num_draws++;
ctx->in_discard_blit = false;
/* Marking the batch as needing flush must come after the batch
* dependency tracking (resource_read()/resource_write()), as that
* can trigger a flush