swrast* (gallium, classic): add MESA_copy_sub_buffer support (v3)
authorDave Airlie <airlied@gmail.com>
Thu, 28 Nov 2013 01:08:11 +0000 (11:08 +1000)
committerDave Airlie <airlied@gmail.com>
Fri, 13 Dec 2013 04:37:01 +0000 (14:37 +1000)
commitba00f2f6f54cbc5ffdb0f0b94bcd672d147cdc36
tree93cec2b58156f3fb87cbc425a7680253bb1fe82f
parent40070e72d4f27797d03986a68b1540339eb2b496
swrast* (gallium, classic): add MESA_copy_sub_buffer support (v3)

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.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
swrast: add support for copy_sub_buffer
41 files changed:
include/GL/internal/dri_interface.h
src/gallium/auxiliary/vl/vl_winsys_dri.c
src/gallium/drivers/galahad/glhd_screen.c
src/gallium/drivers/i915/i915_screen.c
src/gallium/drivers/identity/id_screen.c
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/noop/noop_pipe.c
src/gallium/drivers/rbug/rbug_screen.c
src/gallium/drivers/softpipe/sp_screen.c
src/gallium/drivers/trace/tr_screen.c
src/gallium/include/pipe/p_screen.h
src/gallium/include/state_tracker/drisw_api.h
src/gallium/include/state_tracker/sw_winsys.h
src/gallium/state_trackers/dri/sw/drisw.c
src/gallium/state_trackers/egl/common/native_helper.c
src/gallium/state_trackers/egl/x11/native_ximage.c
src/gallium/state_trackers/glx/xlib/xm_st.c
src/gallium/state_trackers/vdpau/presentation.c
src/gallium/state_trackers/xvmc/surface.c
src/gallium/targets/haiku-softpipe/GalliumContext.cpp
src/gallium/tests/graw/clear.c
src/gallium/tests/graw/fs-test.c
src/gallium/tests/graw/graw_util.h
src/gallium/tests/graw/gs-test.c
src/gallium/tests/graw/quad-sample.c
src/gallium/tests/graw/shader-leak.c
src/gallium/tests/graw/tri-gs.c
src/gallium/tests/graw/tri-instanced.c
src/gallium/tests/graw/vs-test.c
src/gallium/winsys/sw/android/android_sw_winsys.cpp
src/gallium/winsys/sw/dri/dri_sw_winsys.c
src/gallium/winsys/sw/fbdev/fbdev_sw_winsys.c
src/gallium/winsys/sw/gdi/gdi_sw_winsys.c
src/gallium/winsys/sw/hgl/hgl_sw_winsys.c
src/gallium/winsys/sw/null/null_sw_winsys.c
src/gallium/winsys/sw/wayland/wayland_sw_winsys.c
src/gallium/winsys/sw/xlib/xlib_sw_winsys.c
src/glx/drisw_glx.c
src/mesa/drivers/dri/common/dri_util.c
src/mesa/drivers/dri/common/dri_util.h
src/mesa/drivers/dri/swrast/swrast.c