Module: Mesa Branch: master Commit: 4697955c5bb9882ac9be4b70ac2a7d9f03c374d1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4697955c5bb9882ac9be4b70ac2a7d9f03c374d1
Author: Chris Forbes <[email protected]> Date: Sat Oct 5 21:39:25 2013 +1300 i965/wm: Program correct conservative depth modes Signed-off-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> --- src/mesa/drivers/dri/i965/gen7_wm_state.c | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/gen7_wm_state.c b/src/mesa/drivers/dri/i965/gen7_wm_state.c index 80073cd..7ddeb6e 100644 --- a/src/mesa/drivers/dri/i965/gen7_wm_state.c +++ b/src/mesa/drivers/dri/i965/gen7_wm_state.c @@ -60,8 +60,20 @@ upload_wm_state(struct brw_context *brw) if (fp->program.Base.InputsRead & VARYING_BIT_POS) dw1 |= GEN7_WM_USES_SOURCE_DEPTH | GEN7_WM_USES_SOURCE_W; if (fp->program.Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) { - writes_depth = true; - dw1 |= GEN7_WM_PSCDEPTH_ON; + writes_depth = fp->program.FragDepthLayout != FRAG_DEPTH_LAYOUT_UNCHANGED; + + switch (fp->program.FragDepthLayout) { + case FRAG_DEPTH_LAYOUT_NONE: + case FRAG_DEPTH_LAYOUT_ANY: + dw1 |= GEN7_WM_PSCDEPTH_ON; + break; + case FRAG_DEPTH_LAYOUT_GREATER: + dw1 |= GEN7_WM_PSCDEPTH_ON_GE; + break; + case FRAG_DEPTH_LAYOUT_LESS: + dw1 |= GEN7_WM_PSCDEPTH_ON_LE; + break; + } } /* CACHE_NEW_WM_PROG */ dw1 |= brw->wm.prog_data->barycentric_interp_modes << _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
