KhronosGroup / KhronosGroup/Vulkan-Docs
`VK_EXT_shader_object` interaction with `VkPipelineLayout` clarification
- Dominant language
- JavaScript
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 2
Description
The [document describing VK_EXT_shader_object](https://github.com/KhronosGroup/Vulkan-Docs/blob/main/proposals/VK_EXT_shader_object.adoc) contains one reference to `VkPipelineLayout`:
> Descriptor set layouts and push constant ranges used by each shader are specified directly (not via a `VkPipelineLayout`), though multiple stages can of course point to the same structures.
It seems unclear however what "specified directly" means in this context, as the extension itself does not define any new commands for setting push constants or binding descriptor sets, and the code examples don't contain this kind of state setup.
My initial assumption was that when `VK_EXT_shader_object` is present and shaders have been bound with `vkCmdBindShadersEXT` applications would be allowed to use the existing `vkCmdPushConstants` and `vkCmdBindDescriptorSets` commands by passing `VK_NULL_HANDLE` to the layout - this, however does not seem to work on the 531.54 Nvidia developer drivers.
Although this may just be a driver bug, additional clarification might be needed in the documentation that describes how state previously set via `VkPipelineLayout` must be set with this extension.
Contributor guide
Assessment
This issue has not been assessed yet.