anv/gen8: Fix SF_CLIP_VIEWPORT's Z elements
authorChad Versace <chad.versace@intel.com>
Fri, 15 Jan 2016 05:29:46 +0000 (21:29 -0800)
committerChad Versace <chad.versace@intel.com>
Fri, 15 Jan 2016 06:53:05 +0000 (22:53 -0800)
SF_CLIP_VIEWPORT does not clamp Z values. It only scales and shifts
them. Clamping to VkViewport::minDepth,maxDepth is instead handled by
CC_VIEWPORT.

Fixes dEQP-VK.renderpass.simple.depth on Broadwell.

src/vulkan/gen8_cmd_buffer.c

index e2bbd94ddf87c9eea20e0077dab6a41f3a293bac..9c1b6e51b072ca734067d3527fe87472bffb4789 100644 (file)
@@ -88,10 +88,10 @@ emit_viewport_state(struct anv_cmd_buffer *cmd_buffer,
       struct GENX(SF_CLIP_VIEWPORT) sf_clip_viewport = {
          .ViewportMatrixElementm00 = vp->width / 2,
          .ViewportMatrixElementm11 = vp->height / 2,
-         .ViewportMatrixElementm22 = (vp->maxDepth - vp->minDepth) / 2,
+         .ViewportMatrixElementm22 = 1.0,
          .ViewportMatrixElementm30 = vp->x + vp->width / 2,
          .ViewportMatrixElementm31 = vp->y + vp->height / 2,
-         .ViewportMatrixElementm32 = (vp->maxDepth + vp->minDepth) / 2,
+         .ViewportMatrixElementm32 = 0.0,
          .XMinClipGuardband = -1.0f,
          .XMaxClipGuardband = 1.0f,
          .YMinClipGuardband = -1.0f,