Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
6a0cffc
Add sample for descriptor heaps
SaschaWillems Feb 23, 2026
4ed5049
First working version
SaschaWillems Feb 27, 2026
4f66dc2
Trying to fix clang format
SaschaWillems Feb 27, 2026
d726cc9
Clang format
SaschaWillems Feb 27, 2026
9b2037d
Add Slang and HLSL shaders
SaschaWillems Feb 27, 2026
a1c12a8
No longer pre-record command buffers
SaschaWillems Feb 27, 2026
442cb08
Cleanup
SaschaWillems Feb 27, 2026
930db39
Cleanup
SaschaWillems Feb 27, 2026
8ec3157
UBOs per Frame
SaschaWillems Feb 28, 2026
47886be
Add precompiled SPIR-V
SaschaWillems Feb 28, 2026
df7bfb1
Override render pass / framebuffer creation
SaschaWillems Feb 28, 2026
02e62e7
Slight restructuring
SaschaWillems Feb 28, 2026
e5b7ef0
Slight restructuring
SaschaWillems Feb 28, 2026
eb12d9a
Clang format
SaschaWillems Feb 28, 2026
f733978
Cleanup
SaschaWillems Feb 28, 2026
50b4a96
Remove extension not required
SaschaWillems Feb 28, 2026
96e4d84
Merge remote-tracking branch 'upstream/main' into sample_descriptor_heap
SaschaWillems Mar 22, 2026
bc15c70
Reserved range offsets
SaschaWillems Apr 18, 2026
0579063
Variable naming
SaschaWillems Apr 18, 2026
20b95f0
Minor fixes
SaschaWillems Apr 18, 2026
422583b
Adjust offset and size calculations
SaschaWillems Apr 18, 2026
49400eb
Add tutorial for descriptor heap sample
SaschaWillems Apr 18, 2026
cfd21db
Add compiled shaders
SaschaWillems Apr 18, 2026
ff3f59d
Add new sample to navigation
SaschaWillems Apr 18, 2026
14e7fe5
Clean up, push data documentation
SaschaWillems Apr 18, 2026
3d29c19
Fix clang format
SaschaWillems Apr 18, 2026
b345cf4
Variable naming
SaschaWillems Apr 18, 2026
2ae165b
Spelling and grammar
SaschaWillems Apr 19, 2026
2e7cfda
Add comparison to traditional descriptor bindings
SaschaWillems Apr 19, 2026
f985bba
Minor fix
SaschaWillems Apr 19, 2026
daa8c32
Add some key benefits of descriptor heaps
SaschaWillems Apr 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions antora/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
** xref:samples/extensions/conservative_rasterization/README.adoc[Conservative rasterization]
** xref:samples/extensions/debug_utils/README.adoc[Debug utils]
** xref:samples/extensions/descriptor_buffer_basic/README.adoc[Descriptor buffer basic]
** xref:samples/extensions/descriptor_heap/README.adoc[Descriptor heap]
** xref:samples/extensions/descriptor_indexing/README.adoc[Descriptor indexing]
** xref:samples/extensions/dynamic_line_rasterization/README.adoc[Dynamic line rasterization]
** xref:samples/extensions/dynamic_primitive_clipping/README.adoc[Dynamic primitive clipping]
Expand Down
2 changes: 1 addition & 1 deletion framework/api_vulkan_sample.h
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ class ApiVulkanSample : public vkb::VulkanSampleC
/**
* @brief Creates a new (graphics) command pool object storing command buffers
*/
void create_command_pool();
virtual void create_command_pool();

/**
* @brief Setup default depth and stencil views
Expand Down
12 changes: 10 additions & 2 deletions samples/extensions/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -250,11 +250,19 @@ Demonstrate how to use patch control points dynamically, which can reduce the nu

Demonstrate how to use fragment shader barycentric feature, which allows accessing barycentric coordinates for each processed fragment.

=== xref:./{extension_samplespath}descriptor_buffer_basic/README.adoc[Basic descriptor buffer]
=== xref:./{extension_samplespath}descriptor_buffer_basic/README.adoc[Descriptor buffer]

*Extension*: https://www.khronos.org/registry/vulkan/specs/latest/html/vkspec.html#VK_ext_descriptor_buffer[`VK_EXT_descriptor_buffer`]

Demonstrate how to use the new extension to replace descriptor sets with resource descriptor buffers
**Note:** If available, `VK_EXT_descriptor_heap` should be preferred.

Demonstrate how to use the resource descriptor buffers to replace descriptor sets

=== xref:./{extension_samplespath}descriptor_heap/README.adoc[Descriptor heap]

*Extension*: https://www.khronos.org/registry/vulkan/specs/latest/html/vkspec.html#VK_ext_descriptor_heap[`VK_EXT_descriptor_heap`]

Demonstrate how to use descriptor heaps that completely rework how descriptors are handled in Vulkan

=== xref:./{extension_samplespath}color_write_enable/README.adoc[Color write enable]

Expand Down
36 changes: 36 additions & 0 deletions samples/extensions/descriptor_heap/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Copyright (c) 2026 Sascha Willems
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 the "License";
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

get_filename_component(FOLDER_NAME ${CMAKE_CURRENT_LIST_DIR} NAME)
get_filename_component(PARENT_DIR ${CMAKE_CURRENT_LIST_DIR} PATH)
get_filename_component(CATEGORY_NAME ${PARENT_DIR} NAME)

add_sample(
ID ${FOLDER_NAME}
CATEGORY ${CATEGORY_NAME}
AUTHOR "Sascha Willems"
NAME "Descriptor Heap"
DESCRIPTION "Demonstrates the descriptor heap extension to streamline descriptor setup"
SHADER_FILES_GLSL
"descriptor_heap/glsl/cube.vert"
"descriptor_heap/glsl/cube.frag"
SHADER_FILES_HLSL
"descriptor_heap/hlsl/cube.vert.hlsl"
"descriptor_heap/hlsl/cube.frag.hlsl"
SHADER_FILES_SLANG
"descriptor_heap/slang/cube.vert.slang"
"descriptor_heap/slang/cube.frag.slang")
303 changes: 303 additions & 0 deletions samples/extensions/descriptor_heap/README.adoc

Large diffs are not rendered by default.

Loading
Loading