On Thursday, May 18, 2017 9:28:17 PM PDT Kenneth Graunke wrote:
> On Tuesday, March 28, 2017 11:58:54 PM PDT Iago Toral Quiroga wrote:
> > Writing and testing are two different things and they can be set separately
> > by the application. If an application wants to record depth data without
> > caring for the depth test, it can enable depth test and set the depth
> > compare function to VK_COMPARE_OP_ALWAYS or it can simply disable
> > depth testing altogether. Some CTS tests do the latter.
> >
> > Fixes all multisample tests with depth-only formats in:
> > dEQP-VK.renderpass.multisample.*
> > ---
> > src/intel/vulkan/genX_pipeline.c | 4 ----
> > 1 file changed, 4 deletions(-)
> >
> > diff --git a/src/intel/vulkan/genX_pipeline.c
> > b/src/intel/vulkan/genX_pipeline.c
> > index 85a9e4f..dc393cb 100644
> > --- a/src/intel/vulkan/genX_pipeline.c
> > +++ b/src/intel/vulkan/genX_pipeline.c
> > @@ -728,10 +728,6 @@
> > sanitize_ds_state(VkPipelineDepthStencilStateCreateInfo *state,
> > {
> > *stencilWriteEnable = state->stencilTestEnable;
> >
> > - /* If the depth test is disabled, we won't be writing anything. */
> > - if (!state->depthTestEnable)
> > - state->depthWriteEnable = false;
> > -
> > /* The Vulkan spec requires that if either depth or stencil is not
> > present,
> > * the pipeline is to act as if the test silently passes.
> > */
> >
>
> I think those tests are broken.
>
> According to section 25.10 (Depth Test) of Vulkan 1.0.49...
> https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#fragops-depth
>
> "The comparison is enabled or disabled with the depthTestEnable member
> of the VkPipelineDepthStencilStateCreateInfo structure. When disabled,
> the depth comparison and subsequent possible updates to the value of the
> depth component of the depth/stencil attachment are bypassed and the
> fragment is passed to the next operation. The stencil value, however,
> can be modified as indicated above as if the depth test passed. If
> enabled, the comparison takes place and the depth/stencil attachment
> value can subsequently be modified."
>
> So it sounds like depth writes aren't supposed to happen if the depth
> test is disabled - but stencil writes may. FWIW, that's how it works
> in OpenGL as well. (Thanks to Ilia for confirming this with me on IRC.)Oh, sorry...I see now that you figured this out a month ago. I'd made a note to look at this patch in my branch to port this depth/stencil sanitizing stuff to GL. For some reason my email client didn't load the rest of the thread... --Ken
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
