[Mesa-dev] [PATCH 0/4] Multiple viewports in Gallium

Zack Rusin zackr at vmware.com
Thu May 23 13:33:39 PDT 2013


This series adds support for multiple viewports/scissors
to gallium and implements it in llvmpipe. All the other
drivers still support just a single viewport/scissor
combo and their behavior should be exactly the same as
it was.

Zack Rusin (4):
  gallium: Add support for multiple viewports
  draw: implement support for multiple viewports
  util/blitter: make sure the blitter can restore all viewports
  llvmpipe: implement support for multiple viewports

 src/gallium/auxiliary/cso_cache/cso_context.c      |   37 ++++++++++-----
 src/gallium/auxiliary/cso_cache/cso_context.h      |    9 ++--
 src/gallium/auxiliary/draw/draw_cliptest_tmp.h     |   10 +++-
 src/gallium/auxiliary/draw/draw_context.c          |   50 +++++++++++++++-----
 src/gallium/auxiliary/draw/draw_context.h          |    5 +-
 src/gallium/auxiliary/draw/draw_gs.c               |   11 ++++-
 src/gallium/auxiliary/draw/draw_gs.h               |    1 +
 src/gallium/auxiliary/draw/draw_pipe_clip.c        |   11 ++++-
 src/gallium/auxiliary/draw/draw_private.h          |    9 ++--
 .../draw/draw_pt_fetch_shade_pipeline_llvm.c       |    4 +-
 src/gallium/auxiliary/draw/draw_vs.c               |    7 ---
 src/gallium/auxiliary/draw/draw_vs_variant.c       |   33 +++++++++++--
 src/gallium/auxiliary/hud/hud_context.c            |    6 +--
 src/gallium/auxiliary/postprocess/pp_run.c         |    6 +--
 src/gallium/auxiliary/tgsi/tgsi_scan.c             |    6 +++
 src/gallium/auxiliary/tgsi/tgsi_scan.h             |    1 +
 src/gallium/auxiliary/tgsi/tgsi_strings.c          |    3 +-
 src/gallium/auxiliary/util/u_blit.c                |   12 ++---
 src/gallium/auxiliary/util/u_blitter.c             |   10 ++--
 src/gallium/auxiliary/util/u_blitter.h             |   24 ++++++----
 src/gallium/auxiliary/util/u_gen_mipmap.c          |    6 +--
 src/gallium/auxiliary/vl/vl_compositor.c           |    4 +-
 src/gallium/auxiliary/vl/vl_idct.c                 |    4 +-
 src/gallium/auxiliary/vl/vl_matrix_filter.c        |    2 +-
 src/gallium/auxiliary/vl/vl_mc.c                   |    2 +-
 src/gallium/auxiliary/vl/vl_median_filter.c        |    2 +-
 src/gallium/auxiliary/vl/vl_zscan.c                |    2 +-
 src/gallium/docs/source/context.rst                |    8 ++--
 src/gallium/drivers/freedreno/freedreno_resource.c |    4 +-
 src/gallium/drivers/freedreno/freedreno_state.c    |   10 ++--
 src/gallium/drivers/galahad/glhd_context.c         |   16 ++++---
 src/gallium/drivers/i915/i915_state.c              |   12 +++--
 src/gallium/drivers/i915/i915_surface.c            |    4 +-
 src/gallium/drivers/identity/id_context.c          |   22 +++++----
 src/gallium/drivers/ilo/ilo_blit.c                 |    2 +-
 src/gallium/drivers/ilo/ilo_state.c                |   14 +++---
 src/gallium/drivers/llvmpipe/lp_context.h          |    9 +++-
 src/gallium/drivers/llvmpipe/lp_screen.c           |    2 +
 src/gallium/drivers/llvmpipe/lp_setup.c            |   34 ++++++++-----
 src/gallium/drivers/llvmpipe/lp_setup.h            |    5 +-
 src/gallium/drivers/llvmpipe/lp_setup_context.h    |    9 ++--
 src/gallium/drivers/llvmpipe/lp_setup_line.c       |   12 +++--
 src/gallium/drivers/llvmpipe/lp_setup_point.c      |   12 +++--
 src/gallium/drivers/llvmpipe/lp_setup_tri.c        |   17 +++++--
 src/gallium/drivers/llvmpipe/lp_state_clip.c       |   24 ++++++----
 src/gallium/drivers/llvmpipe/lp_state_derived.c    |   15 +++++-
 src/gallium/drivers/llvmpipe/lp_surface.c          |    4 +-
 src/gallium/drivers/noop/noop_state.c              |   14 +++---
 src/gallium/drivers/nv30/nv30_draw.c               |    2 +-
 src/gallium/drivers/nv30/nv30_miptree.c            |    4 +-
 src/gallium/drivers/nv30/nv30_state.c              |   14 +++---
 src/gallium/drivers/nv50/nv50_state.c              |   16 ++++---
 src/gallium/drivers/nvc0/nvc0_state.c              |   14 +++---
 src/gallium/drivers/r300/r300_blit.c               |    4 +-
 src/gallium/drivers/r300/r300_context.c            |    2 +-
 src/gallium/drivers/r300/r300_state.c              |   16 ++++---
 src/gallium/drivers/r600/evergreen_state.c         |    5 +-
 src/gallium/drivers/r600/r600_blit.c               |    4 +-
 src/gallium/drivers/r600/r600_state.c              |    7 +--
 src/gallium/drivers/r600/r600_state_common.c       |    9 ++--
 src/gallium/drivers/radeonsi/r600_blit.c           |    2 +-
 src/gallium/drivers/radeonsi/si_state.c            |   14 +++---
 src/gallium/drivers/rbug/rbug_context.c            |   22 +++++----
 src/gallium/drivers/softpipe/sp_screen.c           |    2 +
 src/gallium/drivers/softpipe/sp_state_clip.c       |   16 ++++---
 src/gallium/drivers/softpipe/sp_surface.c          |    4 +-
 src/gallium/drivers/svga/svga_pipe_blit.c          |    4 +-
 src/gallium/drivers/svga/svga_pipe_misc.c          |   18 +++----
 src/gallium/drivers/svga/svga_swtnl_state.c        |    2 +-
 src/gallium/drivers/trace/tr_context.c             |   28 ++++++-----
 src/gallium/include/pipe/p_context.h               |   10 ++--
 src/gallium/include/pipe/p_defines.h               |    3 +-
 src/gallium/include/pipe/p_shader_tokens.h         |    3 +-
 src/gallium/include/pipe/p_state.h                 |    1 +
 src/gallium/state_trackers/vega/renderer.c         |   10 ++--
 src/gallium/state_trackers/xa/xa_renderer.c        |    2 +-
 src/gallium/state_trackers/xorg/xorg_renderer.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 +-
 src/gallium/tests/trivial/quad-tex.c               |    2 +-
 src/gallium/tests/trivial/tri.c                    |    2 +-
 src/mesa/state_tracker/st_atom_scissor.c           |    2 +-
 src/mesa/state_tracker/st_atom_viewport.c          |    2 +-
 src/mesa/state_tracker/st_cb_bitmap.c              |    6 +--
 src/mesa/state_tracker/st_cb_clear.c               |    6 +--
 src/mesa/state_tracker/st_cb_drawpixels.c          |    6 +--
 src/mesa/state_tracker/st_cb_drawtex.c             |    6 +--
 src/mesa/state_tracker/st_draw_feedback.c          |    2 +-
 94 files changed, 508 insertions(+), 308 deletions(-)

-- 
1.7.10.4


More information about the mesa-dev mailing list