[Mesa-dev] [PATCH 0/5] Implement clip control v3

Mathias.Froehlich at gmx.net Mathias.Froehlich at gmx.net
Fri Oct 24 00:26:52 PDT 2014


From: Mathias Fröhlich <Mathias.Froehlich at gmx.net>

Hi,

The next approach to bring decent depth buffer precision to mesa.

The patch series implements ARB_clip_control in mesa and enables the
extension for the gallium drivers.

v2:
Only enable on those gallium drivers that already support clip_halfz.

v3:
Add more comments.
Restrict getting clip control state to the availability
of ARB_clip_control.
Move to transformation state.
Handle clip control state with the GL_TRANSFORM_BIT.
Move _FrontBit update into state.c.
Handle clip control state with MESA_META_TRANSFORM.
Initially enable on ilo.
Use extension enable infrastructure to connect PIPE_CAP_CLIP_HALFZ
with ARB_clip_control.

Please review.

Greetings
Mathias

Mathias Fröhlich (5):
  mesa: Refactor viewport transform computation.
  mesa: Implement ARB_clip_control.
  mesa: Handle clip control in meta operations.
  gallium: introduce PIPE_CAP_CLIP_HALFZ.
  gallium: Enable ARB_clip_control for gallium drivers.

 docs/GL3.txt                                     |   2 +-
 docs/relnotes/10.4.html                          |   1 +
 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             |   2 +
 src/gallium/drivers/llvmpipe/lp_screen.c         |   2 +
 src/gallium/drivers/nouveau/nv30/nv30_screen.c   |   1 +
 src/gallium/drivers/nouveau/nv50/nv50_screen.c   |   1 +
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c   |   1 +
 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         |   2 +
 src/gallium/drivers/svga/svga_screen.c           |   1 +
 src/gallium/drivers/vc4/vc4_screen.c             |   1 +
 src/gallium/include/pipe/p_defines.h             |   1 +
 src/mapi/glapi/gen/ARB_clip_control.xml          |  25 +++++
 src/mapi/glapi/gen/gl_API.xml                    |   4 +-
 src/mesa/drivers/common/meta.c                   |   6 ++
 src/mesa/drivers/common/meta.h                   |   2 +
 src/mesa/drivers/dri/i915/i915_state.c           |  26 ++---
 src/mesa/main/attrib.c                           |   1 +
 src/mesa/main/dlist.c                            |  26 +++++
 src/mesa/main/extensions.c                       |   1 +
 src/mesa/main/get.c                              |   1 +
 src/mesa/main/get_hash_params.py                 |   2 +
 src/mesa/main/mtypes.h                           |   3 +
 src/mesa/main/polygon.c                          |   2 -
 src/mesa/main/state.c                            |  25 ++++-
 src/mesa/main/tests/dispatch_sanity.cpp          |   3 +
 src/mesa/main/viewport.c                         | 122 ++++++++++++++++++++---
 src/mesa/main/viewport.h                         |   6 ++
 src/mesa/math/m_matrix.c                         |  17 ++--
 src/mesa/math/m_matrix.h                         |   4 +-
 src/mesa/state_tracker/st_atom_rasterizer.c      |  14 ++-
 src/mesa/state_tracker/st_atom_viewport.c        |  23 ++---
 src/mesa/state_tracker/st_extensions.c           |   1 +
 38 files changed, 271 insertions(+), 66 deletions(-)
 create mode 100644 src/mapi/glapi/gen/ARB_clip_control.xml

-- 
1.9.3



More information about the mesa-dev mailing list