I've sent some of these patches earlier, but here I combine them into a series which finishes by implementing support in nvc0.
There are partial tests that I've sent to piglit, but they don't exactly test everything (esp around blit/copypixels). I think this is a good start though. Ilia Mirkin (6): glapi: add GL_EXT_window_rectangles entrypoints mesa: add GL_EXT_window_rectangles state storage/retrieval functionality gallium: add API for setting window rectangles gallium: add PIPE_CAP_MAX_WINDOW_RECTANGLES to all drivers st/mesa: add support for GL_EXT_window_rectangles nvc0: add support for GL_EXT_window_rectangles docs/relnotes/12.1.0.html | 1 + src/gallium/docs/source/context.rst | 15 ++++-- src/gallium/docs/source/screen.rst | 3 +- src/gallium/drivers/freedreno/freedreno_screen.c | 1 + src/gallium/drivers/i915/i915_screen.c | 1 + src/gallium/drivers/ilo/ilo_screen.c | 1 + src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 + src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 + src/gallium/drivers/nouveau/nvc0/nvc0_context.h | 2 + src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 + src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 17 +++++++ .../drivers/nouveau/nvc0/nvc0_state_validate.c | 25 ++++++++++ src/gallium/drivers/nouveau/nvc0/nvc0_stateobj.h | 6 +++ src/gallium/drivers/nouveau/nvc0/nvc0_surface.c | 22 +++++++-- src/gallium/drivers/r300/r300_screen.c | 1 + src/gallium/drivers/r600/r600_pipe.c | 1 + src/gallium/drivers/radeonsi/si_pipe.c | 1 + src/gallium/drivers/softpipe/sp_screen.c | 1 + src/gallium/drivers/svga/svga_screen.c | 1 + src/gallium/drivers/swr/swr_screen.cpp | 1 + src/gallium/drivers/vc4/vc4_screen.c | 1 + src/gallium/drivers/virgl/virgl_screen.c | 1 + src/gallium/include/pipe/p_context.h | 5 ++ src/gallium/include/pipe/p_defines.h | 1 + src/gallium/include/pipe/p_state.h | 6 +++ src/mapi/glapi/gen/EXT_window_rectangles.xml | 29 ++++++++++++ src/mapi/glapi/gen/Makefile.am | 1 + src/mapi/glapi/gen/gl_API.xml | 2 + src/mesa/Makefile.sources | 2 + src/mesa/main/attrib.c | 7 +++ src/mesa/main/config.h | 7 ++- src/mesa/main/dlist.c | 38 ++++++++++++++- src/mesa/main/extensions_table.h | 1 + src/mesa/main/get.c | 12 +++++ src/mesa/main/get_hash_params.py | 5 ++ src/mesa/main/mtypes.h | 5 ++ src/mesa/main/scissor.c | 55 ++++++++++++++++++++++ src/mesa/main/scissor.h | 3 ++ src/mesa/main/tests/dispatch_sanity.cpp | 6 +++ src/mesa/state_tracker/st_atom.c | 1 + src/mesa/state_tracker/st_atom.h | 1 + src/mesa/state_tracker/st_atom_scissor.c | 49 +++++++++++++++++++ src/mesa/state_tracker/st_cb_blit.c | 5 ++ src/mesa/state_tracker/st_cb_clear.c | 17 ++++++- src/mesa/state_tracker/st_cb_drawpixels.c | 4 ++ src/mesa/state_tracker/st_context.h | 5 ++ src/mesa/state_tracker/st_extensions.c | 4 ++ src/mesa/state_tracker/st_scissor.c | 51 ++++++++++++++++++++ src/mesa/state_tracker/st_scissor.h | 38 +++++++++++++++ 49 files changed, 453 insertions(+), 13 deletions(-) create mode 100644 src/mapi/glapi/gen/EXT_window_rectangles.xml create mode 100644 src/mesa/state_tracker/st_scissor.c create mode 100644 src/mesa/state_tracker/st_scissor.h -- 2.7.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev