From: Ilia Mirkin Date: Wed, 9 Nov 2016 06:16:32 +0000 (-0500) Subject: swr: fix support for inverted depth scales X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4af25e713113e5a50c0e03685ce7de20d3828961;p=mesa.git swr: fix support for inverted depth scales Signed-off-by: Ilia Mirkin Reviewed-by: Tim Rowley --- diff --git a/src/gallium/drivers/swr/swr_state.cpp b/src/gallium/drivers/swr/swr_state.cpp index ede475a8e34..01cadcebbc4 100644 --- a/src/gallium/drivers/swr/swr_state.cpp +++ b/src/gallium/drivers/swr/swr_state.cpp @@ -38,6 +38,7 @@ #include "util/u_inlines.h" #include "util/u_helpers.h" #include "util/u_framebuffer.h" +#include "util/u_viewport.h" #include "swr_state.h" #include "swr_context.h" @@ -951,13 +952,8 @@ swr_update_derived(struct pipe_context *pipe, vp->width = state->translate[0] + state->scale[0]; vp->y = state->translate[1] - fabs(state->scale[1]); vp->height = state->translate[1] + fabs(state->scale[1]); - if (rasterizer->clip_halfz == 0) { - vp->minZ = state->translate[2] - state->scale[2]; - vp->maxZ = state->translate[2] + state->scale[2]; - } else { - vp->minZ = state->translate[2]; - vp->maxZ = state->translate[2] + state->scale[2]; - } + util_viewport_zmin_zmax(state, rasterizer->clip_halfz, + &vp->minZ, &vp->maxZ); vpm->m00[0] = state->scale[0]; vpm->m11[0] = state->scale[1];