Maybe we should just roll the depthTestEnable check in with the ds_aspects & VK_IMAGE_ASPECT_DEPTH_BIT check right below it. In either case,
Reviewed-by: Jason Ekstrand <[email protected]> On Thu, Oct 25, 2018 at 5:25 AM Alex Smith <[email protected]> wrote: > When depth testing is disabled, we shouldn't pay attention to the > specified depthCompareOp, and just treat it as always passing. Before, > if the depth test is disabled, but depthCompareOp is VK_COMPARE_OP_NEVER > (e.g. from the app having zero-initialized the structure), then > sanitize_stencil_face() would have incorrectly changed passOp to > VK_STENCIL_OP_KEEP. > > Signed-off-by: Alex Smith <[email protected]> > --- > src/intel/vulkan/genX_pipeline.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/src/intel/vulkan/genX_pipeline.c > b/src/intel/vulkan/genX_pipeline.c > index 33f1f7832a..877a9fb850 100644 > --- a/src/intel/vulkan/genX_pipeline.c > +++ b/src/intel/vulkan/genX_pipeline.c > @@ -755,9 +755,13 @@ > sanitize_ds_state(VkPipelineDepthStencilStateCreateInfo *state, > { > *stencilWriteEnable = state->stencilTestEnable; > > - /* If the depth test is disabled, we won't be writing anything. */ > - if (!state->depthTestEnable) > + /* If the depth test is disabled, we won't be writing anything. Make > sure > + * we treat it as always passing later on as well. > + */ > + if (!state->depthTestEnable) { > state->depthWriteEnable = false; > + state->depthCompareOp = VK_COMPARE_OP_ALWAYS; > + } > > /* The Vulkan spec requires that if either depth or stencil is not > present, > * the pipeline is to act as if the test silently passes. > -- > 2.14.4 > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
