KhronosGroup / KhronosGroup/Vulkan-Docs

VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039 refers to pMultisampleState, not pRasterizationState

Open
#2,498 3 comments 0 reactions 1 assignee Claimed by @spencer-lunarg View on GitHub
Resolving Inside Khronos
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.