swrast* (gallium, classic): add MESA_copy_sub_buffer support (v3)

Graphics / Mesa 3D Graphics Library / Mesa - Dave Airlie [gmail.com] - 12 December 2013 22:37 UTC

This patches add MESA_copy_sub_buffer support to the dri sw loader and then to gallium state tracker, llvmpipe, softpipe and other bits.

It reuses the dri1 driver extension interface, and it updates the swrast loader interface for a new putimage which can take a stride.

I've tested this with gnome-shell with a cogl hacked to reenable sub copies for llvmpipe and the one piglit test.

I could probably split this patch up as well.

v2: pass a pipe_box, to reduce the entrypoints, as per Jose's review, add to p_screen doc comments.

v3: finish off winsys interfaces, add swrast classic support as well.

ba00f2f swrast* (gallium, classic): add MESA_copy_sub_buffer support (v3)
include/GL/internal/dri_interface.h | 9 ++-
src/gallium/auxiliary/vl/vl_winsys_dri.c | 2 +-
src/gallium/drivers/galahad/glhd_screen.c | 5 +-
src/gallium/drivers/i915/i915_screen.c | 4 +-
src/gallium/drivers/identity/id_screen.c | 5 +-
src/gallium/drivers/llvmpipe/lp_screen.c | 6 +-
src/gallium/drivers/noop/noop_pipe.c | 2 +-
src/gallium/drivers/rbug/rbug_screen.c | 4 +-
src/gallium/drivers/softpipe/sp_screen.c | 5 +-
src/gallium/drivers/trace/tr_screen.c | 5 +-
src/gallium/include/pipe/p_screen.h | 7 ++-
src/gallium/include/state_tracker/drisw_api.h | 2 +
src/gallium/include/state_tracker/sw_winsys.h | 5 +-
src/gallium/state_trackers/dri/sw/drisw.c | 58 ++++++++++++++++++--
.../state_trackers/egl/common/native_helper.c | 2 +-
src/gallium/state_trackers/egl/x11/native_ximage.c | 2 +-
src/gallium/state_trackers/glx/xlib/xm_st.c | 2 +-
src/gallium/state_trackers/vdpau/presentation.c | 2 +-
src/gallium/state_trackers/xvmc/surface.c | 2 +-
.../targets/haiku-softpipe/GalliumContext.cpp | 4 +-
src/gallium/tests/graw/clear.c | 2 +-
src/gallium/tests/graw/fs-test.c | 2 +-
src/gallium/tests/graw/graw_util.h | 2 +-
src/gallium/tests/graw/gs-test.c | 2 +-
src/gallium/tests/graw/quad-sample.c | 2 +-
src/gallium/tests/graw/shader-leak.c | 2 +-
src/gallium/tests/graw/tri-gs.c | 2 +-
src/gallium/tests/graw/tri-instanced.c | 2 +-
src/gallium/tests/graw/vs-test.c | 2 +-
.../winsys/sw/android/android_sw_winsys.cpp | 3 +-
src/gallium/winsys/sw/dri/dri_sw_winsys.c | 16 ++++--
src/gallium/winsys/sw/fbdev/fbdev_sw_winsys.c | 3 +-
src/gallium/winsys/sw/gdi/gdi_sw_winsys.c | 3 +-
src/gallium/winsys/sw/hgl/hgl_sw_winsys.c | 3 +-
src/gallium/winsys/sw/null/null_sw_winsys.c | 3 +-
src/gallium/winsys/sw/wayland/wayland_sw_winsys.c | 3 +-
src/gallium/winsys/sw/xlib/xlib_sw_winsys.c | 3 +-
src/glx/drisw_glx.c | 43 +++++++++++++--
src/mesa/drivers/dri/common/dri_util.c | 15 +++++
src/mesa/drivers/dri/common/dri_util.h | 5 +-
src/mesa/drivers/dri/swrast/swrast.c | 35 ++++++++++++
41 files changed, 227 insertions(+), 59 deletions(-)

Upstream: cgit.freedesktop.org


  • Share