KhronosGroup / KhronosGroup/Vulkan-Docs

`VK_EXT_shader_object` interaction with `VkPipelineLayout` clarification

Open
#2,099 3 comments 0 reactions 1 assignee Claimed by @pdaniell-nv View on GitHub
Feature Request
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

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.