gallium: add pipe cap for scissored clears and pass scissor state to clear() hook
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Tue, 24 Mar 2020 16:02:51 +0000 (12:02 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Apr 2020 18:05:06 +0000 (18:05 +0000)
commit1c8bcad81a7ce106b37f1ee4a75b817651d6545e
tree89ce4e4e5cfb117422582b12c284f261b9944ba7
parent882928dcaa2133fe07b73e7e962d50625c8e6a03
gallium: add pipe cap for scissored clears and pass scissor state to clear() hook

this adds a new pipe cap that drivers can support which enables passing buffer
clears with scissor test enabled through to be handled by the driver instead
of having mesa draw a quad

also adjust all existing clear() hooks to have the new parameter

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4310>
63 files changed:
src/gallium/auxiliary/driver_ddebug/dd_draw.c
src/gallium/auxiliary/driver_ddebug/dd_pipe.h
src/gallium/auxiliary/driver_noop/noop_pipe.c
src/gallium/auxiliary/driver_rbug/rbug_context.c
src/gallium/auxiliary/driver_trace/tr_context.c
src/gallium/auxiliary/postprocess/pp_mlaa.c
src/gallium/auxiliary/postprocess/pp_run.c
src/gallium/auxiliary/util/u_screen.c
src/gallium/auxiliary/util/u_tests.c
src/gallium/auxiliary/util/u_threaded_context.c
src/gallium/docs/source/screen.rst
src/gallium/drivers/etnaviv/etnaviv_blt.c
src/gallium/drivers/etnaviv/etnaviv_rs.c
src/gallium/drivers/freedreno/freedreno_draw.c
src/gallium/drivers/i915/i915_clear.c
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/iris/iris_clear.c
src/gallium/drivers/lima/lima_draw.c
src/gallium/drivers/llvmpipe/lp_clear.c
src/gallium/drivers/llvmpipe/lp_clear.h
src/gallium/drivers/nouveau/nv30/nv30_clear.c
src/gallium/drivers/nouveau/nv50/nv50_context.h
src/gallium/drivers/nouveau/nv50/nv50_surface.c
src/gallium/drivers/nouveau/nvc0/nvc0_context.h
src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
src/gallium/drivers/panfrost/pan_context.c
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/radeonsi/si_clear.c
src/gallium/drivers/softpipe/sp_clear.c
src/gallium/drivers/softpipe/sp_clear.h
src/gallium/drivers/svga/svga_pipe_clear.c
src/gallium/drivers/swr/swr_clear.cpp
src/gallium/drivers/tegra/tegra_context.c
src/gallium/drivers/v3d/v3dx_draw.c
src/gallium/drivers/vc4/vc4_draw.c
src/gallium/drivers/virgl/virgl_context.c
src/gallium/drivers/zink/zink_context.c
src/gallium/include/pipe/p_context.h
src/gallium/include/pipe/p_defines.h
src/gallium/state_trackers/nine/nine_state.c
src/gallium/tests/graw/clear.c
src/gallium/tests/graw/fs-fragcoord.c
src/gallium/tests/graw/fs-frontface.c
src/gallium/tests/graw/fs-test.c
src/gallium/tests/graw/fs-write-z.c
src/gallium/tests/graw/gs-test.c
src/gallium/tests/graw/occlusion-query.c
src/gallium/tests/graw/quad-sample.c
src/gallium/tests/graw/quad-tex.c
src/gallium/tests/graw/shader-leak.c
src/gallium/tests/graw/tex-srgb.c
src/gallium/tests/graw/tex-swizzle.c
src/gallium/tests/graw/tri-gs.c
src/gallium/tests/graw/tri-instanced.c
src/gallium/tests/graw/tri-large.c
src/gallium/tests/graw/tri.c
src/gallium/tests/graw/vs-test.c
src/gallium/tests/trivial/quad-tex.c
src/gallium/tests/trivial/tri.c
src/mesa/state_tracker/st_cb_clear.c
src/mesa/state_tracker/st_context.h
src/mesa/state_tracker/st_manager.c