From: Roland Scheidegger <srol...@vmware.com> This was meant to disable some code which isn't needed when depth/stencil isn't written. However, there's more code which wouldn't be needed in that case so having the condition there was just odd (llvm will drop all the code anyway). --- src/gallium/drivers/llvmpipe/lp_bld_depth.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-)
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_depth.c b/src/gallium/drivers/llvmpipe/lp_bld_depth.c index 08138f0..5ef9947 100644 --- a/src/gallium/drivers/llvmpipe/lp_bld_depth.c +++ b/src/gallium/drivers/llvmpipe/lp_bld_depth.c @@ -1097,23 +1097,18 @@ lp_build_depth_stencil_test(struct gallivm_state *gallivm, stencil_shift, ""); /* Finally, merge the z/stencil values */ - if ((depth->enabled && depth->writemask) || - (stencil[0].enabled && (stencil[0].writemask || - (stencil[1].enabled && stencil[1].writemask)))) { - - if (format_desc->block.bits <= 32) { - if (have_z && have_s) - *z_value = LLVMBuildOr(builder, z_dst, stencil_vals, ""); - else if (have_z) - *z_value = z_dst; - else - *z_value = stencil_vals; - *s_value = *z_value; - } - else { + if (format_desc->block.bits <= 32) { + if (have_z && have_s) + *z_value = LLVMBuildOr(builder, z_dst, stencil_vals, ""); + else if (have_z) *z_value = z_dst; - *s_value = stencil_vals; - } + else + *z_value = stencil_vals; + *s_value = *z_value; + } + else { + *z_value = z_dst; + *s_value = stencil_vals; } if (s_pass_mask) -- 1.7.9.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev