gallium: add pipe cap for scissored clears and pass scissor state to clear() hook

Graphics / Mesa 3D Graphics Library / Mesa - Mike Blumenkrantz [gmail.com] - 29 April 2020 18:05 UTC

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

1c8bcad81a7 gallium: add pipe cap for scissored clears and pass scissor state to clear() hook
src/gallium/auxiliary/driver_ddebug/dd_draw.c | 9 ++++++--
src/gallium/auxiliary/driver_ddebug/dd_pipe.h | 1 +
src/gallium/auxiliary/driver_noop/noop_pipe.c | 2 +-
src/gallium/auxiliary/driver_rbug/rbug_context.c | 2 ++
src/gallium/auxiliary/driver_trace/tr_context.c | 6 ++++-
src/gallium/auxiliary/postprocess/pp_mlaa.c | 2 +-
src/gallium/auxiliary/postprocess/pp_run.c | 2 +-
src/gallium/auxiliary/util/u_screen.c | 1 +
src/gallium/auxiliary/util/u_tests.c | 2 +-
src/gallium/auxiliary/util/u_threaded_context.c | 9 ++++++--
src/gallium/docs/source/screen.rst | 2 ++
src/gallium/drivers/etnaviv/etnaviv_blt.c | 2 +-
src/gallium/drivers/etnaviv/etnaviv_rs.c | 2 +-
src/gallium/drivers/freedreno/freedreno_draw.c | 2 +-
src/gallium/drivers/i915/i915_clear.c | 2 ++
src/gallium/drivers/i915/i915_context.h | 2 ++
src/gallium/drivers/iris/iris_clear.c | 1 +
src/gallium/drivers/lima/lima_draw.c | 2 +-
src/gallium/drivers/llvmpipe/lp_clear.c | 1 +
src/gallium/drivers/llvmpipe/lp_clear.h | 1 +
src/gallium/drivers/nouveau/nv30/nv30_clear.c | 2 +-
src/gallium/drivers/nouveau/nv50/nv50_context.h | 1 +
src/gallium/drivers/nouveau/nv50/nv50_surface.c | 2 +-
src/gallium/drivers/nouveau/nvc0/nvc0_context.h | 1 +
src/gallium/drivers/nouveau/nvc0/nvc0_surface.c | 1 +
src/gallium/drivers/panfrost/pan_context.c | 1 +
src/gallium/drivers/r300/r300_blit.c | 1 +
src/gallium/drivers/r600/r600_blit.c | 1 +
src/gallium/drivers/radeonsi/si_clear.c | 1 +
src/gallium/drivers/softpipe/sp_clear.c | 1 +
src/gallium/drivers/softpipe/sp_clear.h | 1 +
src/gallium/drivers/svga/svga_pipe_clear.c | 2 +-
src/gallium/drivers/swr/swr_clear.cpp | 1 +
src/gallium/drivers/tegra/tegra_context.c | 4 ++--
src/gallium/drivers/v3d/v3dx_draw.c | 2 +-
src/gallium/drivers/vc4/vc4_draw.c | 2 +-
src/gallium/drivers/virgl/virgl_context.c | 1 +
src/gallium/drivers/zink/zink_context.c | 1 +
src/gallium/include/pipe/p_context.h | 2 ++
src/gallium/include/pipe/p_defines.h | 1 +
src/gallium/state_trackers/nine/nine_state.c | 2 +-
src/gallium/tests/graw/clear.c | 2 +-
src/gallium/tests/graw/fs-fragcoord.c | 1 +
src/gallium/tests/graw/fs-frontface.c | 1 +
src/gallium/tests/graw/fs-test.c | 2 +-
src/gallium/tests/graw/fs-write-z.c | 1 +
src/gallium/tests/graw/gs-test.c | 2 +-
src/gallium/tests/graw/occlusion-query.c | 1 +
src/gallium/tests/graw/quad-sample.c | 2 +-
src/gallium/tests/graw/quad-tex.c | 2 +-
src/gallium/tests/graw/shader-leak.c | 2 +-
src/gallium/tests/graw/tex-srgb.c | 2 +-
src/gallium/tests/graw/tex-swizzle.c | 2 +-
src/gallium/tests/graw/tri-gs.c | 2 +-
src/gallium/tests/graw/tri-instanced.c | 2 +-
src/gallium/tests/graw/tri-large.c | 2 +-
src/gallium/tests/graw/tri.c | 2 +-
src/gallium/tests/graw/vs-test.c | 2 +-
src/gallium/tests/trivial/quad-tex.c | 2 +-
src/gallium/tests/trivial/tri.c | 2 +-
src/mesa/state_tracker/st_cb_clear.c | 28 ++++++++++++++++++++++--
src/mesa/state_tracker/st_context.h | 4 ++++
src/mesa/state_tracker/st_manager.c | 2 ++
63 files changed, 114 insertions(+), 38 deletions(-)

Upstream: cgit.freedesktop.org


  • Share