Skip to content

Add new sample for VK_EXT_descriptor_heap#1493

Open
SaschaWillems wants to merge 27 commits intoKhronosGroup:mainfrom
SaschaWillems:sample_descriptor_heap
Open

Add new sample for VK_EXT_descriptor_heap#1493
SaschaWillems wants to merge 27 commits intoKhronosGroup:mainfrom
SaschaWillems:sample_descriptor_heap

Conversation

@SaschaWillems
Copy link
Copy Markdown
Collaborator

@SaschaWillems SaschaWillems commented Feb 27, 2026

Description

This PR adds a new sample for the recently released VK_EXT_descriptor_heap extension. It shows off different heap types (resources, samplers). It only does the descriptor set and binding mapping way of using heaps. Untyped pointers might follow at a later point of certain things have been resolved (see our internal discussions).

Tested on Win11 with an Nvidia RTX 4070.

Fixes #1486

General Checklist:

Please ensure the following points are checked:

  • My code follows the coding style
  • I have reviewed file licenses
  • I have commented any added functions (in line with Doxygen)
  • I have commented any code that could be hard to understand
  • My changes do not add any new compiler warnings
  • My changes do not add any new validation layer errors or warnings
  • I have used existing framework/helper functions where possible
  • My changes do not add any regressions
  • I have tested every sample to ensure everything runs correctly
  • This PR describes the scope and expected impact of the changes I am making

Note: The Samples CI runs a number of checks including:

  • I have updated the header Copyright to reflect the current year (CI build will fail if Copyright is out of date)
  • My changes build on Windows, Linux, macOS and Android. Otherwise I have documented any exceptions

If this PR contains framework changes:

  • I did a full batch run using the batch command line argument to make sure all samples still work properly

Sample Checklist

If your PR contains a new or modified sample, these further checks must be carried out in addition to the General Checklist:

  • I have tested the sample on at least one compliant Vulkan implementation
  • If the sample is vendor-specific, I have tagged it appropriately
  • I have stated on what implementation the sample has been tested so that others can test on different implementations and platforms
  • Any dependent assets have been merged and published in downstream modules
  • For new samples, I have added a paragraph with a summary to the appropriate chapter in the readme of the folder that the sample belongs to e.g. api samples readme
  • For new samples, I have added a tutorial README.md file to guide users through what they need to know to implement code using this feature. For example, see conditional_rendering
  • For new samples, I have added a link to the Antora navigation so that the sample will be listed at the Vulkan documentation site

@ilyachastikov
Copy link
Copy Markdown

In all shader examples you are using descriptor sets (for example layout (set = 1, binding = 0) uniform texture2D textureImage[2];), but according to documentation using descriptor heaps is special case like this: layout(descriptor_heap) uniform texture2D heapTexture2D[];. What the meaning of descritor heaps with using them like descriptor sets? I think this usage example is misleading.

@SaschaWillems
Copy link
Copy Markdown
Collaborator Author

SaschaWillems commented Feb 28, 2026

@SaschaWillems SaschaWillems marked this pull request as ready for review April 18, 2026 08:23
@SaschaWillems
Copy link
Copy Markdown
Collaborator Author

This PR is now ready to review. I also added a light tutorial. "light" because there's already a lot of documentation on heaps like the guide, proposal, spec and blogs.

@SaschaWillems SaschaWillems added the sample This is relevant to a sample label Apr 18, 2026
@SaschaWillems SaschaWillems requested a review from a team April 18, 2026 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sample This is relevant to a sample

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add new sample for descriptor heap

2 participants