mesa: Add support for AMD_depth_clamp_separate
authorSagar Ghuge <sagar.ghuge@intel.com>
Fri, 27 Jul 2018 21:55:57 +0000 (14:55 -0700)
committerAnuj Phogat <anuj.phogat@gmail.com>
Tue, 28 Aug 2018 19:57:27 +0000 (12:57 -0700)
commit5650d3997851007a4e4268a4fa4bd698db41e7dc
tree64317045968fff5a595dfa19e7275726d1b67487
parent379949b967f88d27529a2a1a9706753600ce80ca
mesa: Add support for AMD_depth_clamp_separate

Enable _mesa_PushAttrib() and _mesa_PopAttrib() to handle
GL_DEPTH_CLAMP_NEAR_AMD and GL_DEPTH_CLAMP_FAR_AMD tokens.

Remove DepthClamp, because DepthClampNear + DepthClampFar replaces it,
as suggested by Marek Olsak.

Driver that enables AMD_depth_clamp_separate will only ever look at
DepthClampNear and DepthClampFar, as suggested by Ian Romanick.

v2: 1) Remove unnecessary parentheses (Marek Olsak)
    2) if AMD_depth_clamp_separate is unsupported, TEST_AND_UPDATE
       GL_DEPTH_CLAMP only (Marek Olsak)
    3) Clamp against near and far plane separately (Marek Olsak)
    4) Clip point separately for near and far Z clipping plane (Marek
       Olsak)

v3: Clamp raster position zw to the range [min(n,f), 0] for near plane
    and [0, max(n,f)] for far plane (Marek Olsak)

v4: Use MIN2 and MAX2 instead of CLAMP (Marek Olsak)

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
12 files changed:
src/mesa/drivers/dri/i965/genX_state_upload.c
src/mesa/main/attrib.c
src/mesa/main/enable.c
src/mesa/main/get.c
src/mesa/main/get_hash_params.py
src/mesa/main/mtypes.h
src/mesa/main/rastpos.c
src/mesa/state_tracker/st_atom_rasterizer.c
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/swrast/s_span.c
src/mesa/tnl/t_vb_program.c
src/mesa/tnl/t_vb_vertex.c