Skip to content

Commit

Permalink
Transcoded version of extension sample push_descriptors based on Vulk…
Browse files Browse the repository at this point in the history
…an-Hpp
  • Loading branch information
asuessenbach committed Nov 7, 2024
1 parent 6f99ebe commit 7773329
Show file tree
Hide file tree
Showing 7 changed files with 494 additions and 1 deletion.
2 changes: 2 additions & 0 deletions antora/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,13 @@
** xref:samples/extensions/memory_budget/README.adoc[Memory budget]
** xref:samples/extensions/mesh_shader_culling/README.adoc[Mesh shader culling]
** xref:samples/extensions/mesh_shading/README.adoc[Mesh shading]
*** xref:samples/extensions/hpp_mesh_shading/README.adoc[Mesh shading (Vulkan-Hpp)]
** xref:samples/extensions/open_cl_interop/README.adoc[OpenCL interop]
** xref:samples/extensions/open_cl_interop_arm/README.adoc[OpenCL interop (Arm)]
** xref:samples/extensions/open_gl_interop/README.adoc[OpenGL interop]
** xref:samples/extensions/portability/README.adoc[Portability]
** xref:samples/extensions/push_descriptors/README.adoc[Push descriptors]
*** xref:samples/extensions/hpp_push_descriptors/README.adoc[Push descriptors (Vulkan-Hpp)]
** xref:samples/extensions/ray_tracing_basic/README.adoc[Raytracing basic]
** xref:samples/extensions/ray_tracing_extended/README.adoc[Raytracing extended]
** xref:samples/extensions/ray_queries/README.adoc[Ray queries]
Expand Down
1 change: 1 addition & 0 deletions samples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ set(ORDER_LIST

#HPP Extension Samples
"hpp_mesh_shading"
"hpp_push_descriptors"

#HPP Performance Samples
"hpp_pipeline_cache"
Expand Down
6 changes: 5 additions & 1 deletion samples/extensions/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ See this https://www.khronos.org/blog/streamlining-subpasses[this blogpost].
Push descriptors apply the push constants concept to descriptor sets.
Instead of creating per-object descriptor sets, this example passes descriptors at command buffer creation time.

=== xref:./{extension_samplespath}hpp_push_descriptors/README.adoc[HPP Push Descriptors]

A transcoded version of the Extensions sample <<push_descriptors,Push Descriptors>> that illustrates the usage of the C{pp} bindings of vulkan provided by Vulkan-Hpp.

=== xref:./{extension_samplespath}debug_utils/README.adoc[Debug Utilities]

*Extension*: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils[`VK_EXT_debug_utils`]
Expand Down Expand Up @@ -107,7 +111,7 @@ This replaces the vertex / geometry shader standard pipeline.

=== xref:./{extension_samplespath}hpp_mesh_shading/README.adoc[HPP Mesh shading]

A transcoded version of the Extensions sample <<mesh_shading,Mesh shading>> that illustrates the usage of the C{pp} bindings of vulkan provided by vulkan.hpp.
A transcoded version of the Extensions sample <<mesh_shading,Mesh shading>> that illustrates the usage of the C{pp} bindings of vulkan provided by Vulkan-Hpp.

=== xref:./{extension_samplespath}open_gl_interop/README.adoc[OpenGL interoperability]

Expand Down
33 changes: 33 additions & 0 deletions samples/extensions/hpp_push_descriptors/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Copyright (c) 2019-2024, 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_with_tags(
ID ${FOLDER_NAME}
CATEGORY ${CATEGORY_NAME}
AUTHOR "Sascha Willems"
NAME "HPP Push descriptors"
DESCRIPTION "Using VK_KHR_push_descriptor for push constant like use of descriptors, using Vulkan-Hpp"
SHADER_FILES_GLSL
"push_descriptors/glsl/cube.vert"
"push_descriptors/glsl/cube.frag"
SHADER_FILES_HLSL
"push_descriptors/hlsl/cube.vert.hlsl"
"push_descriptors/hlsl/cube.frag.hlsl")
30 changes: 30 additions & 0 deletions samples/extensions/hpp_push_descriptors/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
////
- Copyright (c) 2020-2024, Arm Limited and Contributors
-
- 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.
-
////
= Push Descriptors

ifdef::site-gen-antora[]
TIP: The source for this sample can be found in the https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/extensions/hpp_push_descriptors[Khronos Vulkan samples github repository].
endif::[]


*Extension*: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptor[`VK_KHR_push_descriptor`]

Push descriptors apply the push constants concept to descriptor sets.
Instead of creating per-object descriptor sets, this example passes descriptors at command buffer creation time.
Loading

0 comments on commit 7773329

Please sign in to comment.