diff options
author | Sagar Ghuge <[email protected]> | 2018-08-21 14:25:17 -0700 |
---|---|---|
committer | Anuj Phogat <[email protected]> | 2018-08-28 12:57:27 -0700 |
commit | e6adea0dc063e461cbcac871da21e577a9d4198c (patch) | |
tree | 1662263c4dc34efbc25740a2fa14ed08f8701dce /src/mesa | |
parent | 2765749e0f2b72e53cd89e29dce365571279bfdf (diff) |
i965: add functional changes for AMD_depth_clamp_separate
Gen >= 9 have ability to control clamping of depth values separately at
near and far plane.
z_w is clamped to the range [min(n,f), 0] if clamping at near plane is
enabled, [0, max(n,f)] if clamping at far plane is enabled and [min(n,f)
max(n,f)] if clamping at both plane is enabled.
v2: 1) Use better coding style (Ian Romanick)
Signed-off-by: Sagar Ghuge <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/genX_state_upload.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c index 24977a7bba2..09a42e44b08 100644 --- a/src/mesa/drivers/dri/i965/genX_state_upload.c +++ b/src/mesa/drivers/dri/i965/genX_state_upload.c @@ -2343,6 +2343,12 @@ genX(upload_cc_viewport)(struct brw_context *brw) if (ctx->Transform.DepthClampNear && ctx->Transform.DepthClampFar) { ccv.MinimumDepth = MIN2(vp->Near, vp->Far); ccv.MaximumDepth = MAX2(vp->Near, vp->Far); + } else if (ctx->Transform.DepthClampNear) { + ccv.MinimumDepth = MIN2(vp->Near, vp->Far); + ccv.MaximumDepth = 0.0; + } else if (ctx->Transform.DepthClampFar) { + ccv.MinimumDepth = 0.0; + ccv.MaximumDepth = MAX2(vp->Near, vp->Far); } else { ccv.MinimumDepth = 0.0; ccv.MaximumDepth = 1.0; @@ -4607,15 +4613,19 @@ genX(upload_raster)(struct brw_context *brw) raster.ScissorRectangleEnable = ctx->Scissor.EnableFlags; /* _NEW_TRANSFORM */ +#if GEN_GEN < 9 if (!(ctx->Transform.DepthClampNear && - ctx->Transform.DepthClampFar)) { + ctx->Transform.DepthClampFar)) + raster.ViewportZClipTestEnable = true; +#endif + #if GEN_GEN >= 9 - raster.ViewportZFarClipTestEnable = true; + if (!ctx->Transform.DepthClampNear) raster.ViewportZNearClipTestEnable = true; -#else - raster.ViewportZClipTestEnable = true; + + if (!ctx->Transform.DepthClampFar) + raster.ViewportZFarClipTestEnable = true; #endif - } /* BRW_NEW_CONSERVATIVE_RASTERIZATION */ #if GEN_GEN >= 9 |