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 mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev