From: Samuel Iglesias Gonsálvez Date: Fri, 15 Sep 2017 08:05:03 +0000 (+0200) Subject: anv: fix viewport transformation for z component X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d2cd9deeb8db5941e99b149fa637f711198ca741;p=mesa.git anv: fix viewport transformation for z component In Vulkan, for 'z' (depth) component, the scale and translate values for the viewport transformation are: pz = maxDepth - minDepth oz = minDepth zf = pz × zd + oz Being zd, the third component in vertex's normalized device coordinates. Fixes: dEQP-VK.draw.inverted_depth_ranges.* Signed-off-by: Samuel Iglesias Gonsálvez Reviewed-by: Jason Ekstrand Cc: mesa-stable@lists.freedesktop.org --- diff --git a/src/intel/vulkan/gen8_cmd_buffer.c b/src/intel/vulkan/gen8_cmd_buffer.c index 064b8e930e9..7bea231ea76 100644 --- a/src/intel/vulkan/gen8_cmd_buffer.c +++ b/src/intel/vulkan/gen8_cmd_buffer.c @@ -49,10 +49,10 @@ gen8_cmd_buffer_emit_viewport(struct anv_cmd_buffer *cmd_buffer) struct GENX(SF_CLIP_VIEWPORT) sf_clip_viewport = { .ViewportMatrixElementm00 = vp->width / 2, .ViewportMatrixElementm11 = vp->height / 2, - .ViewportMatrixElementm22 = 1.0, + .ViewportMatrixElementm22 = vp->maxDepth - vp->minDepth, .ViewportMatrixElementm30 = vp->x + vp->width / 2, .ViewportMatrixElementm31 = vp->y + vp->height / 2, - .ViewportMatrixElementm32 = 0.0, + .ViewportMatrixElementm32 = vp->minDepth, .XMinClipGuardband = -1.0f, .XMaxClipGuardband = 1.0f, .YMinClipGuardband = -1.0f,