KhronosGroup / Vulkan-Docs

The Vulkan API Specification and related tools
Other
2.7k stars 452 forks source link

`conservativePointAndLineRasterization` VUIDs don't mention tessellation shaders #2342

Open Rua opened 3 months ago

Rua commented 3 months ago

Three VUIDs for graphics pipeline creation state that if conservativePointAndLineRasterization is not supported, the last pre-rasterization step must not output points or lines:

However, what if the pipeline uses input assembly and does not have a geometry shader, but does have tessellation shaders? Then the input assembly's primitive topology will be patches, and it's the tessellation shaders that determine the final primitive type.

If this is an omission, then VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-08892 would need to be adjusted to only apply if there are no tessellation shaders. An additional VUID is needed for the case that tessellation shaders are present, checking against the tessellation shader output (Isolines/PointMode).

pdaniell-nv commented 3 months ago

I think you're right there needs to be VUs added to forbid tessellation shaders from outputting lines and points if the implementation doesn't support conservativePointAndLineRasterization. I've assigned the issue to myself to patch this hole.