[Mesa-dev] [PATCH 00/15] Add ARB_viewport_array extension

Courtney Goeltzenleuchter courtney at lunarg.com
Wed Nov 20 14:59:15 PST 2013


This series starts by updating the driver interface for
scissor, viewport and DepthRange. This includes removing
unused arguments from the Scissor, Viewport and DepthRange.
I kept the index argument, although it is not used, it may
be useful to the dri driver to know which array element
is being updated.

I added things incrementally, each having no effect
on piglit. I tested the full series against the arb_viewport_array
piglit tests submitted by LunarG and a stubbed version of the
i965 driver that enables ARB_viewport_array. I've not
included that stub in this series.

I modeled the indexed Get functions off GL_COLOR_WRITEMASK.

Since the removal of x, y, w, h touches the same files as
references to gl_context.Viewport it seemed just as easy to
convert those references to the array reference with index 0.
Should the driver add ARB_viewport_array support they would
simply put the right index value in place of 0.


Courtney Goeltzenleuchter (18):
  mesa: Change scissor dd interface for viewport_array
  mesa: Update viewport dd interface for viewport_array
  mesa: Change DepthRange dd interface
  mesa: Update gl_scissor_attrib to support ARB_viewport_array
  mesa: Update viewport driver args for ARB_viewport_array
  mesa: Update viewport state for viewport_array
  meta: Update meta driver to use API entry point
  mesa: Add indexed version of mesa_scissor
  mesa: Add new get entrypoints for ARB_viewport_array
  mesa: Add custom get function for SCISSOR
  mesa: Add ARB_viewport_array state to gl_context
  mesa: Add scissor entry points for viewport_array
  mesa: Add ARB_viewport_array viewport entry points
  mesa: Add gl_ViewportIndex variable to GLSL
  mesa: Add ARB_viewport_array plumbing
  mesa: Remove unused arguments from driver->Scissor
  mesa: Remove unused arguments from driver->Viewport
  mesa: Remove unused arguments from driver->DepthRange

 src/glsl/builtin_variables.cpp                  |   2 +
 src/glsl/glsl_parser_extras.h                   |   1 +
 src/mapi/glapi/gen/ARB_viewport_array.xml       |  79 ++++++
 src/mapi/glapi/gen/Makefile.am                  |   1 +
 src/mapi/glapi/gen/gl_API.xml                   |   2 +-
 src/mesa/drivers/common/driverfuncs.c           |  11 +-
 src/mesa/drivers/common/meta.c                  |  52 ++--
 src/mesa/drivers/dri/i915/i830_state.c          |  26 +-
 src/mesa/drivers/dri/i915/i830_vtbl.c           |   5 +-
 src/mesa/drivers/dri/i915/i915_state.c          |  50 ++--
 src/mesa/drivers/dri/i915/i915_vtbl.c           |   5 +-
 src/mesa/drivers/dri/i915/intel_context.c       |  15 +-
 src/mesa/drivers/dri/i915/intel_fbo.c           |   2 +-
 src/mesa/drivers/dri/i965/brw_cc.c              |   4 +-
 src/mesa/drivers/dri/i965/brw_clear.c           |  12 +-
 src/mesa/drivers/dri/i965/brw_clip_state.c      |  12 +-
 src/mesa/drivers/dri/i965/brw_context.c         |   7 +-
 src/mesa/drivers/dri/i965/brw_sf_state.c        |   4 +-
 src/mesa/drivers/dri/i965/gen6_clip_state.c     |   8 +-
 src/mesa/drivers/dri/i965/gen6_sf_state.c       |   2 +-
 src/mesa/drivers/dri/i965/gen6_viewport_state.c |   6 +-
 src/mesa/drivers/dri/i965/gen7_sf_state.c       |   2 +-
 src/mesa/drivers/dri/i965/gen7_viewport_state.c |   6 +-
 src/mesa/drivers/dri/i965/intel_fbo.c           |   2 +-
 src/mesa/drivers/dri/nouveau/nouveau_util.h     |   4 +-
 src/mesa/drivers/dri/nouveau/nv10_state_fb.c    |   2 +-
 src/mesa/drivers/dri/r200/r200_state.c          |  15 +-
 src/mesa/drivers/dri/radeon/radeon_common.c     |  18 +-
 src/mesa/drivers/dri/radeon/radeon_common.h     |   2 +-
 src/mesa/drivers/dri/radeon/radeon_state.c      |  14 +-
 src/mesa/drivers/dri/swrast/swrast.c            |   8 +-
 src/mesa/main/attrib.c                          |  30 ++-
 src/mesa/main/config.h                          |   3 +
 src/mesa/main/context.c                         |  36 ++-
 src/mesa/main/dd.h                              |   6 +-
 src/mesa/main/enable.c                          |  36 ++-
 src/mesa/main/extensions.c                      |   1 +
 src/mesa/main/framebuffer.c                     |  19 +-
 src/mesa/main/get.c                             | 218 +++++++++++++++-
 src/mesa/main/get.h                             |   6 +
 src/mesa/main/get_hash_params.py                |  15 +-
 src/mesa/main/mtypes.h                          |  25 +-
 src/mesa/main/rastpos.c                         |   4 +-
 src/mesa/main/scissor.c                         | 157 ++++++++++--
 src/mesa/main/scissor.h                         |  10 +-
 src/mesa/main/state.c                           |  17 +-
 src/mesa/main/viewport.c                        | 314 ++++++++++++++++++++----
 src/mesa/main/viewport.h                        |  22 +-
 src/mesa/math/m_matrix.c                        |   9 +-
 src/mesa/math/m_matrix.h                        |   4 +-
 src/mesa/program/prog_statevars.c               |   7 +-
 src/mesa/state_tracker/st_atom_rasterizer.c     |   2 +-
 src/mesa/state_tracker/st_atom_scissor.c        |  14 +-
 src/mesa/state_tracker/st_atom_viewport.c       |  12 +-
 src/mesa/state_tracker/st_cb_bitmap.c           |   2 +-
 src/mesa/state_tracker/st_cb_clear.c            |  10 +-
 src/mesa/state_tracker/st_cb_drawpixels.c       |   2 +-
 src/mesa/state_tracker/st_cb_viewport.c         |   3 +-
 src/mesa/swrast/s_context.c                     |  10 +-
 src/mesa/swrast/s_depth.c                       |  10 +-
 src/mesa/swrast_setup/ss_context.c              |   4 +-
 src/mesa/tnl/t_rasterpos.c                      |  16 +-
 62 files changed, 1057 insertions(+), 346 deletions(-)
 create mode 100644 src/mapi/glapi/gen/ARB_viewport_array.xml

-- 
1.8.1.2



More information about the mesa-dev mailing list