KhronosGroup / KhronosGroup/Vulkan-Docs
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039 refers to pMultisampleState, not pRasterizationState
- Dominant language
- JavaScript
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 2
Description
Hello, currently [VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineCreateInfo.html#VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039) reads:
> If [VkGraphicsPipelineLibraryCreateInfoEXT](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineLibraryCreateInfoEXT.html)::`flags` includes `VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT`, and [related dynamic state is not set](https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#pipelines-pMultisampleState-null), then `pMultisampleState` must be a valid pointer to a valid [VkPipelineMultisampleStateCreateInfo](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineMultisampleStateCreateInfo.html) structure
This is a bit weird, as multisample state is not listed in the [Pre-Rasterization Shader State](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineCreateInfo.html#pipelines-graphics-subsets-pre-rasterization) section (only in [Fragment Shader State](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineCreateInfo.html#pipelines-graphics-subsets-fragment-shader) and [Fragment Output State](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineCreateInfo.html#pipelines-graphics-subsets-fragment-output), and the name refers to `pRasterizationState` instead of `pMultisampleState`. Also, the nearby [VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-06601](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineCreateInfo.html#VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-06601) and [VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineCreateInfo.html#VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040) refer to `pRasterizationState`.
This is currently [unimplemented in Vulkan-ValidationLayers](https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/352e3efb64e3075d0d6813c8ead663539b4e14a5/layers/error_message/unimplementable_validation.h#L197) (though the exact reason why is in a private repo I don't have access to).
Is there actually a case where `pMultisampleState` must be valid in pre-rasterization shader state, or is this a mistake in the spec?
Contributor guide
Assessment
This issue has not been assessed yet.