├── .clang-format
├── .copyrightignore
├── .github
├── ISSUE_TEMPLATE
│ └── issue-template.md
├── docker
│ ├── Dockerfile
│ ├── files
│ │ └── package-list.txt
│ ├── readme.md
│ └── scripts
│ │ ├── check_copyright_headers.py
│ │ ├── clang_format.py
│ │ ├── run-clang-tidy.py
│ │ ├── snake_case.py
│ │ └── vk_convert.lex
└── workflows
│ ├── build.yml
│ ├── check.yml
│ ├── external.yml
│ ├── image.yml
│ └── jekyll-gh-pages.yml
├── .gitignore
├── .gitlab-ci.yml
├── .gitmodules
├── .snakeignore
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── CONTRIBUTORS.md
├── LICENSE
├── README.md
├── _config.yml
├── app
├── CMakeLists.txt
├── android
│ ├── AndroidManifest.xml
│ ├── ic_launcher-web.png
│ ├── java
│ │ └── com
│ │ │ └── khronos
│ │ │ └── vulkan_samples
│ │ │ ├── FilterDialog.java
│ │ │ ├── NativeSampleActivity.java
│ │ │ ├── SampleArrayAdapter.java
│ │ │ ├── SampleLauncherActivity.java
│ │ │ ├── TabFragment.java
│ │ │ ├── ViewPagerAdapter.java
│ │ │ ├── common
│ │ │ ├── Notifications.java
│ │ │ └── Utils.java
│ │ │ ├── model
│ │ │ ├── Permission.java
│ │ │ ├── Sample.java
│ │ │ └── SampleStore.java
│ │ │ └── views
│ │ │ ├── PermissionView.java
│ │ │ └── SampleListView.java
│ └── res
│ │ ├── drawable
│ │ └── icon.png
│ │ ├── layout
│ │ ├── activity_main.xml
│ │ ├── fragment_tab.xml
│ │ └── listview_item.xml
│ │ ├── menu
│ │ └── main_menu.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── values
│ │ ├── colors.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ │ └── xml
│ │ └── provider_paths.xml
├── apps
│ ├── CMakeLists.txt
│ ├── apps.cpp.in
│ └── apps.h
├── main.cpp
└── plugins
│ ├── CMakeLists.txt
│ ├── batch_mode
│ ├── batch_mode.cpp
│ └── batch_mode.h
│ ├── benchmark_mode
│ ├── benchmark_mode.cpp
│ └── benchmark_mode.h
│ ├── data_path
│ ├── data_path.cpp
│ └── data_path.h
│ ├── file_logger
│ ├── file_logger.cpp
│ └── file_logger.h
│ ├── force_close
│ ├── force_close.cpp
│ └── force_close.h
│ ├── fps_logger
│ ├── fps_logger.cpp
│ └── fps_logger.h
│ ├── generic_options
│ ├── generic_options.cpp
│ └── generic_options.h
│ ├── plugins.cpp.in
│ ├── plugins.h
│ ├── screenshot
│ ├── screenshot.cpp
│ └── screenshot.h
│ ├── start_sample
│ ├── start_sample.cpp
│ └── start_sample.h
│ ├── start_test
│ ├── start_test.cpp
│ └── start_test.h
│ ├── stop_after
│ ├── stop_after.cpp
│ └── stop_after.h
│ └── window_options
│ ├── window_options.cpp
│ └── window_options.h
├── assets_local
├── .gitattributes
├── README.md
├── monkey.gltf
├── nanite_mat_id_01.png
└── nanite_mat_id_02.png
├── banner.jpg
├── bldsys
├── cmake
│ ├── android_package.cmake
│ ├── android_sync_folder.cmake
│ ├── check_atomic.cmake
│ ├── create_gradle_project.cmake
│ ├── create_sample_project.cmake
│ ├── global_options.cmake
│ ├── module
│ │ ├── FindAdb.cmake
│ │ └── FindGradle.cmake
│ ├── sample_helper.cmake
│ ├── template
│ │ ├── gradle
│ │ │ ├── app.build.gradle.in
│ │ │ ├── build.gradle.in
│ │ │ ├── download_vvl.gradle
│ │ │ ├── gradle-wrapper.jar
│ │ │ ├── gradle-wrapper.properties.in
│ │ │ ├── gradle.properties.in
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle.in
│ │ └── sample
│ │ │ ├── CMakeLists.txt.in
│ │ │ ├── sample.cpp.in
│ │ │ └── sample.h.in
│ └── utils.cmake
├── scripts
│ ├── clang-format.sh
│ ├── generate_android_gradle.bat
│ ├── generate_android_gradle.sh
│ ├── generate_sample.bat
│ └── generate_sample.sh
└── toolchain
│ ├── android_gradle.cmake
│ └── android_nsight_tegra.cmake
├── docs
├── build.md
├── create_sample.md
├── debug_graphs.md
├── doxygen
│ └── doxyfile
├── images
│ ├── debug-graph.png
│ └── debug-window.png
├── memory_limits.md
├── misc.md
├── pull_request_template.md
└── testing.md
├── framework
├── CMakeLists.txt
├── api_vulkan_sample.cpp
├── api_vulkan_sample.h
├── buffer_pool.cpp
├── buffer_pool.h
├── camera.cpp
├── camera.h
├── common
│ ├── error.cpp
│ ├── error.h
│ ├── glm_common.h
│ ├── helpers.h
│ ├── hpp_error.h
│ ├── hpp_resource_caching.h
│ ├── hpp_strings.h
│ ├── hpp_utils.h
│ ├── hpp_vk_common.h
│ ├── logging.h
│ ├── optional.h
│ ├── resource_caching.h
│ ├── strings.cpp
│ ├── strings.h
│ ├── tags.h
│ ├── utils.cpp
│ ├── utils.h
│ ├── vk_common.cpp
│ ├── vk_common.h
│ └── vk_initializers.h
├── core
│ ├── acceleration_structure.cpp
│ ├── acceleration_structure.h
│ ├── buffer.cpp
│ ├── buffer.h
│ ├── command_buffer.cpp
│ ├── command_buffer.h
│ ├── command_pool.cpp
│ ├── command_pool.h
│ ├── debug.cpp
│ ├── debug.h
│ ├── descriptor_pool.cpp
│ ├── descriptor_pool.h
│ ├── descriptor_set.cpp
│ ├── descriptor_set.h
│ ├── descriptor_set_layout.cpp
│ ├── descriptor_set_layout.h
│ ├── device.cpp
│ ├── device.h
│ ├── framebuffer.cpp
│ ├── framebuffer.h
│ ├── hpp_buffer.cpp
│ ├── hpp_buffer.h
│ ├── hpp_command_buffer.cpp
│ ├── hpp_command_buffer.h
│ ├── hpp_command_pool.cpp
│ ├── hpp_command_pool.h
│ ├── hpp_debug.h
│ ├── hpp_descriptor_pool.h
│ ├── hpp_descriptor_set.h
│ ├── hpp_descriptor_set_layout.h
│ ├── hpp_device.cpp
│ ├── hpp_device.h
│ ├── hpp_framebuffer.h
│ ├── hpp_image.cpp
│ ├── hpp_image.h
│ ├── hpp_image_view.cpp
│ ├── hpp_image_view.h
│ ├── hpp_instance.cpp
│ ├── hpp_instance.h
│ ├── hpp_physical_device.cpp
│ ├── hpp_physical_device.h
│ ├── hpp_pipeline.h
│ ├── hpp_pipeline_layout.h
│ ├── hpp_query_pool.h
│ ├── hpp_queue.cpp
│ ├── hpp_queue.h
│ ├── hpp_render_pass.h
│ ├── hpp_sampler.h
│ ├── hpp_shader_module.h
│ ├── hpp_swapchain.cpp
│ ├── hpp_swapchain.h
│ ├── hpp_vulkan_resource.cpp
│ ├── hpp_vulkan_resource.h
│ ├── image.cpp
│ ├── image.h
│ ├── image_view.cpp
│ ├── image_view.h
│ ├── instance.cpp
│ ├── instance.h
│ ├── physical_device.cpp
│ ├── physical_device.h
│ ├── pipeline.cpp
│ ├── pipeline.h
│ ├── pipeline_layout.cpp
│ ├── pipeline_layout.h
│ ├── query_pool.cpp
│ ├── query_pool.h
│ ├── queue.cpp
│ ├── queue.h
│ ├── render_pass.cpp
│ ├── render_pass.h
│ ├── sampled_image.cpp
│ ├── sampled_image.h
│ ├── sampler.cpp
│ ├── sampler.h
│ ├── scratch_buffer.cpp
│ ├── scratch_buffer.h
│ ├── shader_binding_table.cpp
│ ├── shader_binding_table.h
│ ├── shader_module.cpp
│ ├── shader_module.h
│ ├── swapchain.cpp
│ ├── swapchain.h
│ ├── vulkan_resource.cpp
│ └── vulkan_resource.h
├── debug_info.cpp
├── debug_info.h
├── fence_pool.cpp
├── fence_pool.h
├── geometry
│ ├── frustum.cpp
│ └── frustum.h
├── glsl_compiler.cpp
├── glsl_compiler.h
├── gltf_loader.cpp
├── gltf_loader.h
├── graphing
│ ├── framework_graph.cpp
│ ├── framework_graph.h
│ ├── graph.cpp
│ ├── graph.h
│ ├── graph_node.cpp
│ ├── graph_node.h
│ ├── scene_graph.cpp
│ └── scene_graph.h
├── gui.cpp
├── gui.h
├── heightmap.cpp
├── heightmap.h
├── hpp_api_vulkan_sample.cpp
├── hpp_api_vulkan_sample.h
├── hpp_buffer_pool.h
├── hpp_fence_pool.h
├── hpp_glsl_compiler.h
├── hpp_gltf_loader.h
├── hpp_gui.cpp
├── hpp_gui.h
├── hpp_resource_binding_state.h
├── hpp_resource_cache.cpp
├── hpp_resource_cache.h
├── hpp_resource_record.h
├── hpp_resource_replay.h
├── hpp_vulkan_sample.cpp
├── hpp_vulkan_sample.h
├── platform
│ ├── android
│ │ ├── android_platform.cpp
│ │ ├── android_platform.h
│ │ ├── android_window.cpp
│ │ └── android_window.h
│ ├── application.cpp
│ ├── application.h
│ ├── configuration.cpp
│ ├── configuration.h
│ ├── filesystem.cpp
│ ├── filesystem.h
│ ├── glfw_window.cpp
│ ├── glfw_window.h
│ ├── headless_window.cpp
│ ├── headless_window.h
│ ├── hpp_application.h
│ ├── hpp_platform.h
│ ├── hpp_window.h
│ ├── input_events.cpp
│ ├── input_events.h
│ ├── parser.cpp
│ ├── parser.h
│ ├── parsers
│ │ ├── CLI11.cpp
│ │ ├── CLI11.h
│ │ ├── help_formatter.cpp
│ │ └── help_formatter.h
│ ├── platform.cpp
│ ├── platform.h
│ ├── plugins
│ │ ├── plugin.cpp
│ │ ├── plugin.h
│ │ └── plugin_base.h
│ ├── unix
│ │ ├── direct_window.cpp
│ │ ├── direct_window.h
│ │ ├── unix_d2d_platform.cpp
│ │ ├── unix_d2d_platform.h
│ │ ├── unix_platform.cpp
│ │ └── unix_platform.h
│ ├── window.cpp
│ ├── window.h
│ └── windows
│ │ ├── windows_platform.cpp
│ │ └── windows_platform.h
├── rendering
│ ├── hpp_pipeline_state.h
│ ├── hpp_render_context.cpp
│ ├── hpp_render_context.h
│ ├── hpp_render_frame.h
│ ├── hpp_render_pipeline.h
│ ├── hpp_render_target.cpp
│ ├── hpp_render_target.h
│ ├── hpp_subpass.h
│ ├── pipeline_state.cpp
│ ├── pipeline_state.h
│ ├── postprocessing_computepass.cpp
│ ├── postprocessing_computepass.h
│ ├── postprocessing_pass.cpp
│ ├── postprocessing_pass.h
│ ├── postprocessing_pipeline.cpp
│ ├── postprocessing_pipeline.h
│ ├── postprocessing_renderpass.cpp
│ ├── postprocessing_renderpass.h
│ ├── render_context.cpp
│ ├── render_context.h
│ ├── render_frame.cpp
│ ├── render_frame.h
│ ├── render_pipeline.cpp
│ ├── render_pipeline.h
│ ├── render_target.cpp
│ ├── render_target.h
│ ├── subpass.cpp
│ ├── subpass.h
│ └── subpasses
│ │ ├── forward_subpass.cpp
│ │ ├── forward_subpass.h
│ │ ├── geometry_subpass.cpp
│ │ ├── geometry_subpass.h
│ │ ├── hpp_forward_subpass.h
│ │ ├── lighting_subpass.cpp
│ │ └── lighting_subpass.h
├── resource_binding_state.cpp
├── resource_binding_state.h
├── resource_cache.cpp
├── resource_cache.h
├── resource_record.cpp
├── resource_record.h
├── resource_replay.cpp
├── resource_replay.h
├── scene_graph
│ ├── component.cpp
│ ├── component.h
│ ├── components
│ │ ├── aabb.cpp
│ │ ├── aabb.h
│ │ ├── camera.cpp
│ │ ├── camera.h
│ │ ├── hpp_image.h
│ │ ├── hpp_sub_mesh.h
│ │ ├── image.cpp
│ │ ├── image.h
│ │ ├── image
│ │ │ ├── astc.cpp
│ │ │ ├── astc.h
│ │ │ ├── ktx.cpp
│ │ │ ├── ktx.h
│ │ │ ├── stb.cpp
│ │ │ └── stb.h
│ │ ├── light.cpp
│ │ ├── light.h
│ │ ├── material.cpp
│ │ ├── material.h
│ │ ├── mesh.cpp
│ │ ├── mesh.h
│ │ ├── orthographic_camera.cpp
│ │ ├── orthographic_camera.h
│ │ ├── pbr_material.cpp
│ │ ├── pbr_material.h
│ │ ├── perspective_camera.cpp
│ │ ├── perspective_camera.h
│ │ ├── sampler.cpp
│ │ ├── sampler.h
│ │ ├── sub_mesh.cpp
│ │ ├── sub_mesh.h
│ │ ├── texture.cpp
│ │ ├── texture.h
│ │ ├── transform.cpp
│ │ └── transform.h
│ ├── node.cpp
│ ├── node.h
│ ├── scene.cpp
│ ├── scene.h
│ ├── script.cpp
│ ├── script.h
│ └── scripts
│ │ ├── animation.cpp
│ │ ├── animation.h
│ │ ├── free_camera.cpp
│ │ ├── free_camera.h
│ │ ├── node_animation.cpp
│ │ └── node_animation.h
├── semaphore_pool.cpp
├── semaphore_pool.h
├── spirv_reflection.cpp
├── spirv_reflection.h
├── stats
│ ├── frame_time_stats_provider.cpp
│ ├── frame_time_stats_provider.h
│ ├── hpp_stats.h
│ ├── hwcpipe_stats_provider.cpp
│ ├── hwcpipe_stats_provider.h
│ ├── stats.cpp
│ ├── stats.h
│ ├── stats_common.h
│ ├── stats_provider.cpp
│ ├── stats_provider.h
│ ├── vulkan_stats_provider.cpp
│ └── vulkan_stats_provider.h
├── timer.cpp
├── timer.h
├── vulkan_sample.cpp
└── vulkan_sample.h
├── samples
├── CMakeLists.txt
├── README.md
├── api
│ ├── README.md
│ ├── compute_nbody
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── compute_nbody.cpp
│ │ └── compute_nbody.h
│ ├── dynamic_uniform_buffers
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── dynamic_uniform_buffers.cpp
│ │ └── dynamic_uniform_buffers.h
│ ├── hdr
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hdr.cpp
│ │ └── hdr.h
│ ├── hello_triangle
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hello_triangle.cpp
│ │ └── hello_triangle.h
│ ├── hlsl_shaders
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hlsl_shaders.cpp
│ │ └── hlsl_shaders.h
│ ├── hpp_compute_nbody
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_compute_nbody.cpp
│ │ └── hpp_compute_nbody.h
│ ├── hpp_dynamic_uniform_buffers
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_dynamic_uniform_buffers.cpp
│ │ └── hpp_dynamic_uniform_buffers.h
│ ├── hpp_hdr
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_hdr.cpp
│ │ └── hpp_hdr.h
│ ├── hpp_hello_triangle
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_hello_triangle.cpp
│ │ └── hpp_hello_triangle.h
│ ├── hpp_hlsl_shaders
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_hlsl_shaders.cpp
│ │ └── hpp_hlsl_shaders.h
│ ├── hpp_instancing
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_instancing.cpp
│ │ └── hpp_instancing.h
│ ├── hpp_separate_image_sampler
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_separate_image_sampler.cpp
│ │ └── hpp_separate_image_sampler.h
│ ├── hpp_terrain_tessellation
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_terrain_tessellation.cpp
│ │ └── hpp_terrain_tessellation.h
│ ├── hpp_texture_loading
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_texture_loading.cpp
│ │ └── hpp_texture_loading.h
│ ├── hpp_texture_mipmap_generation
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_texture_mipmap_generation.cpp
│ │ └── hpp_texture_mipmap_generation.h
│ ├── hpp_timestamp_queries
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_timestamp_queries.cpp
│ │ └── hpp_timestamp_queries.h
│ ├── instancing
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── instancing.cpp
│ │ └── instancing.h
│ ├── separate_image_sampler
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── separate_image_sampler.cpp
│ │ └── separate_image_sampler.h
│ ├── terrain_tessellation
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── terrain_tessellation.cpp
│ │ └── terrain_tessellation.h
│ ├── texture_loading
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── texture_loading.cpp
│ │ └── texture_loading.h
│ ├── texture_mipmap_generation
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── mip_mapping_anisotropic.jpg
│ │ │ ├── mip_mapping_bilinear.jpg
│ │ │ └── mip_mapping_off.jpg
│ │ ├── texture_mipmap_generation.cpp
│ │ └── texture_mipmap_generation.h
│ └── timestamp_queries
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── timestamp_queries.cpp
│ │ └── timestamp_queries.h
├── extensions
│ ├── README.md
│ ├── buffer_device_address
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── buffer_device_address.cpp
│ │ ├── buffer_device_address.h
│ │ └── images
│ │ │ └── sample.png
│ ├── calibrated_timestamps
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── calibrated_timestamps.cpp
│ │ └── calibrated_timestamps.h
│ ├── conditional_rendering
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── conditional_rendering.cpp
│ │ ├── conditional_rendering.h
│ │ └── images
│ │ │ ├── conditional-buffer-mapping.png
│ │ │ └── sample.png
│ ├── conservative_rasterization
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── conservative_rasterization.cpp
│ │ └── conservative_rasterization.h
│ ├── debug_utils
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── debug_utils.cpp
│ │ ├── debug_utils.h
│ │ └── images
│ │ │ ├── renderdoc_final.jpg
│ │ │ ├── renderdoc_launch_settings.jpg
│ │ │ ├── renderdoc_nested_cmd.jpg
│ │ │ ├── renderdoc_no_labels.jpg
│ │ │ ├── renderdoc_pipeline_state_names.jpg
│ │ │ ├── renderdoc_resource_inspector_names.jpg
│ │ │ ├── renderdoc_resource_inspector_no_names.jpg
│ │ │ └── renderdoc_with_labels.jpg
│ ├── descriptor_buffer_basic
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── descriptor_buffer_basic.cpp
│ │ └── descriptor_buffer_basic.h
│ ├── descriptor_indexing
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── descriptor_indexing.cpp
│ │ ├── descriptor_indexing.h
│ │ └── images
│ │ │ ├── non-uniform-draw.png
│ │ │ ├── non-uniform-usage.png
│ │ │ ├── sample.png
│ │ │ └── update-after-bind.png
│ ├── dynamic_rendering
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── dynamic_rendering.cpp
│ │ └── dynamic_rendering.h
│ ├── extended_dynamic_state2
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── extended_dynamic_state2.cpp
│ │ ├── extended_dynamic_state2.h
│ │ └── images
│ │ │ └── extended_dynamic_state2_screenshot.png
│ ├── fragment_shader_barycentric
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── fragment_shader_barycentric.cpp
│ │ ├── fragment_shader_barycentric.h
│ │ └── images
│ │ │ └── fragment_shader_barycentric_screenshot.png
│ ├── fragment_shading_rate
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── fragment_shading_rate.cpp
│ │ └── fragment_shading_rate.h
│ ├── fragment_shading_rate_dynamic
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── diagram.png
│ │ ├── fragment_shading_rate_dynamic.cpp
│ │ ├── fragment_shading_rate_dynamic.h
│ │ ├── frequency.png
│ │ ├── rendered.png
│ │ └── shading_rate.png
│ ├── full_screen_exclusive
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── full_screen_exclusive.cpp
│ │ └── full_screen_exclusive.h
│ ├── gpu_dispatch
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── gpu_dispatch.cpp
│ │ ├── gpu_dispatch.h
│ │ └── vk_amdx_shader_enqueue.h
│ ├── gpu_draw_dispatch
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── example.h
│ │ ├── example_default.cpp
│ │ ├── example_default.h
│ │ ├── example_dynamic_state.cpp
│ │ ├── example_dynamic_state.h
│ │ ├── gpu_draw_dispatch.cpp
│ │ └── gpu_draw_dispatch.h
│ ├── graphics_pipeline_library
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── graphics_pipeline_library.cpp
│ │ ├── graphics_pipeline_library.h
│ │ └── images
│ │ │ └── sample.jpg
│ ├── logic_op_dynamic_state
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ └── logic_op_dynamic_state_screenshot.png
│ │ ├── logic_op_dynamic_state.cpp
│ │ └── logic_op_dynamic_state.h
│ ├── memory_budget
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ └── memory_budget_ui_overlay.png
│ │ ├── memory_budget.cpp
│ │ └── memory_budget.h
│ ├── mesh_shading
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── mesh_shading.cpp
│ │ └── mesh_shading.h
│ ├── open_cl_interop
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── sample.png
│ │ │ └── shared_hardware_buffer.png
│ │ ├── open_cl_functions.inl
│ │ ├── open_cl_interop.cpp
│ │ ├── open_cl_interop.h
│ │ ├── open_cl_utils.cpp
│ │ └── open_cl_utils.h
│ ├── open_gl_interop
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── offscreen_context.cpp
│ │ ├── offscreen_context.h
│ │ ├── open_gl_interop.cpp
│ │ ├── open_gl_interop.h
│ │ └── third_party
│ │ │ └── glad
│ │ │ ├── include
│ │ │ ├── KHR
│ │ │ │ └── khrplatform.h
│ │ │ └── glad
│ │ │ │ └── glad.h
│ │ │ └── src
│ │ │ └── glad.c
│ ├── portability
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── portability.cpp
│ │ └── portability.h
│ ├── push_descriptors
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── push_descriptors.cpp
│ │ └── push_descriptors.h
│ ├── ray_queries
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── ray_queries.cpp
│ │ └── ray_queries.h
│ ├── ray_tracing_reflection
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── img1.png
│ │ ├── img2.png
│ │ ├── img3.png
│ │ ├── ray_tracing_reflection.cpp
│ │ └── ray_tracing_reflection.h
│ ├── raytracing_basic
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── raytracing_basic.cpp
│ │ └── raytracing_basic.h
│ ├── raytracing_extended
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── raytracing_extended.cpp
│ │ └── raytracing_extended.h
│ ├── synchronization_2
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── synchronization_2.cpp
│ │ └── synchronization_2.h
│ ├── timeline_semaphore
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ └── sample.png
│ │ ├── timeline_semaphore.cpp
│ │ └── timeline_semaphore.h
│ └── vertex_dynamic_state
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ └── sample.png
│ │ ├── vertex_dynamic_state.cpp
│ │ └── vertex_dynamic_state.h
├── performance
│ ├── 16bit_arithmetic
│ │ ├── 16bit_arithmetic.cpp
│ │ ├── 16bit_arithmetic.h
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ └── images
│ │ │ ├── blobs_result_fp16.jpg
│ │ │ └── blobs_result_fp32.jpg
│ ├── 16bit_storage_input_output
│ │ ├── 16bit_storage_input_output.cpp
│ │ ├── 16bit_storage_input_output.h
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ └── images
│ │ │ ├── fp16_input_output_disable.jpg
│ │ │ └── fp16_input_output_enable.jpg
│ ├── README.md
│ ├── afbc
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── afbc.cpp
│ │ ├── afbc.h
│ │ └── images
│ │ │ ├── afbc_disabled.jpg
│ │ │ ├── afbc_enabled.jpg
│ │ │ ├── streamline_disabled.png
│ │ │ └── streamline_enabled.png
│ ├── async_compute
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── async_compute.cpp
│ │ ├── async_compute.h
│ │ └── images
│ │ │ ├── async.jpg
│ │ │ ├── image.jpg
│ │ │ └── noasync.jpg
│ ├── command_buffer_usage
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── command_buffer_usage.cpp
│ │ ├── command_buffer_usage.h
│ │ └── images
│ │ │ ├── allocate_and_free.jpg
│ │ │ ├── android_profiler_allocate_and_free.png
│ │ │ ├── multi_threading.png
│ │ │ ├── reset_buffers.jpg
│ │ │ ├── reset_pool.jpg
│ │ │ └── single_threading.png
│ ├── constant_data
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── constant_data.cpp
│ │ ├── constant_data.h
│ │ └── images
│ │ │ ├── controls.png
│ │ │ ├── descriptor_set_performance.jpg
│ │ │ ├── dynamic_descriptor_set_performance.jpg
│ │ │ ├── graph_data.jpg
│ │ │ ├── loadcycles.png
│ │ │ └── push_constants_performance.jpg
│ ├── descriptor_management
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── descriptor_management.cpp
│ │ ├── descriptor_management.h
│ │ └── images
│ │ │ ├── bonza_caching_multiple_buf.jpg
│ │ │ ├── bonza_no_caching_multiple_buf.jpg
│ │ │ ├── bonza_no_caching_single_buf.jpg
│ │ │ └── streamline_desc_caching.png
│ ├── hpp_pipeline_cache
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_pipeline_cache.cpp
│ │ └── hpp_pipeline_cache.h
│ ├── hpp_swapchain_images
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hpp_swapchain_images.cpp
│ │ └── hpp_swapchain_images.h
│ ├── layout_transitions
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── last_layout.jpg
│ │ │ └── undefined_layout.jpg
│ │ ├── layout_transitions.cpp
│ │ └── layout_transitions.h
│ ├── msaa
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── example_comparison.png
│ │ │ ├── msaa_bad.png
│ │ │ ├── msaa_bad_postprocessing.png
│ │ │ ├── msaa_good.png
│ │ │ ├── msaa_good_postprocessing.png
│ │ │ ├── no_msaa.png
│ │ │ ├── no_msaa_postprocessing.png
│ │ │ ├── screenshot_color_depth_separate.jpg
│ │ │ ├── screenshot_color_depth_writeback.jpg
│ │ │ ├── screenshot_color_separate.jpg
│ │ │ ├── screenshot_color_writeback.jpg
│ │ │ ├── screenshot_no_msaa.jpg
│ │ │ ├── screenshot_no_msaa_postprocessing.jpg
│ │ │ ├── steps_msaa.png
│ │ │ ├── steps_no_msaa.png
│ │ │ └── streamline_writeback_separate.png
│ │ ├── msaa.cpp
│ │ └── msaa.h
│ ├── multi_draw_indirect
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── multi_draw_indirect.cpp
│ │ └── multi_draw_indirect.h
│ ├── multithreading_render_passes
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── android_studio_capture_no_multithreading.png
│ │ │ ├── android_studio_capture_secondary_buffers.png
│ │ │ ├── no_multi_threading.png
│ │ │ ├── primary_command_buffers.png
│ │ │ ├── render_passes_diagram.png
│ │ │ └── secondary_command_buffers.png
│ │ ├── multithreading_render_passes.cpp
│ │ └── multithreading_render_passes.h
│ ├── pipeline_barriers
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── immediate_mode_rendering.png
│ │ │ ├── mali_three_stage_pipeline.png
│ │ │ ├── sample_bot_to_top.jpg
│ │ │ ├── sample_frag_to_frag.jpg
│ │ │ ├── sample_frag_to_vert.jpg
│ │ │ └── tile_based_rendering.png
│ │ ├── pipeline_barriers.cpp
│ │ └── pipeline_barriers.h
│ ├── pipeline_cache
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── compute_pipeline_dependencies.png
│ │ │ ├── graphics_pipeline_dependencies.png
│ │ │ ├── pipeline_cache_disable.jpg
│ │ │ └── pipeline_cache_enable.jpg
│ │ ├── pipeline_cache.cpp
│ │ └── pipeline_cache.h
│ ├── render_passes
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── clear_dont_care.jpg
│ │ │ ├── clear_store.jpg
│ │ │ ├── load_store.jpg
│ │ │ ├── render_passes_streamline.png
│ │ │ └── vk_cmd_clear.png
│ │ ├── render_passes.cpp
│ │ └── render_passes.h
│ ├── specialization_constants
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── UBOs_graph.png
│ │ │ ├── specialization_constants_graph.png
│ │ │ └── specialization_constants_sample.png
│ │ ├── specialization_constants.cpp
│ │ └── specialization_constants.h
│ ├── subpasses
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── gbuffer-size.jpg
│ │ │ ├── good-practice.jpg
│ │ │ ├── render-passes.jpg
│ │ │ ├── subpasses-renderpasses-trace.jpg
│ │ │ └── transient-attachments.jpg
│ │ ├── subpasses.cpp
│ │ └── subpasses.h
│ ├── surface_rotation
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── android_compositor.jpg
│ │ │ ├── android_prerotation.jpg
│ │ │ ├── fov_components.png
│ │ │ ├── prerotate_streamline.png
│ │ │ └── rotation_cases.jpg
│ │ ├── surface_rotation.cpp
│ │ └── surface_rotation.h
│ ├── swapchain_images
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── sponza_double_buffering.jpg
│ │ │ ├── sponza_triple_buffering.jpg
│ │ │ ├── streamline_swapchain_marker.png
│ │ │ ├── swapchain_double_buffering.png
│ │ │ ├── swapchain_double_buffering_slow.png
│ │ │ └── swapchain_triple_buffering.png
│ │ ├── swapchain_images.cpp
│ │ └── swapchain_images.h
│ ├── texture_compression_basisu
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ │ ├── 2021-ktx-universal-gpu-compressed-textures.png
│ │ │ └── texture_compression_basisu_sample.jpg
│ │ ├── texture_compression_basisu.cpp
│ │ └── texture_compression_basisu.h
│ ├── texture_compression_comparison
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── texture_compression_comparison.cpp
│ │ └── texture_compression_comparison.h
│ └── wait_idle
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── images
│ │ ├── fences_graph.png
│ │ ├── wait_idle_graph.png
│ │ └── wait_idle_sample.png
│ │ ├── wait_idle.cpp
│ │ └── wait_idle.h
├── tooling
│ ├── README.md
│ └── profiles
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── profiles.cpp
│ │ ├── profiles.h
│ │ ├── renderdoc_device_1.png
│ │ ├── renderdoc_device_2.png
│ │ └── vulkan_profiles.hpp
└── vulkan_basics.md
├── shaders
├── 16bit_arithmetic
│ ├── compute_buffer.comp
│ ├── compute_buffer_fp16.comp
│ ├── visualize.frag
│ └── visualize.vert
├── 16bit_storage_input_output
│ ├── 16bit_storage_input_output_disabled.frag
│ ├── 16bit_storage_input_output_disabled.vert
│ ├── 16bit_storage_input_output_enabled.frag
│ └── 16bit_storage_input_output_enabled.vert
├── async_compute
│ ├── blur_common.h
│ ├── blur_down.comp
│ ├── blur_up.comp
│ ├── composite.frag
│ ├── composite.vert
│ ├── forward.frag
│ ├── forward.vert
│ ├── shadow.frag
│ ├── shadow.vert
│ └── threshold.comp
├── base.frag
├── base.vert
├── buffer_device_address
│ ├── render.frag
│ ├── render.vert
│ └── update_vbo.comp
├── compute_nbody
│ ├── particle.frag
│ ├── particle.vert
│ ├── particle_calculate.comp
│ └── particle_integrate.comp
├── conditional_rendering
│ ├── model.frag
│ └── model.vert
├── conservative_rasterization
│ ├── fullscreen.frag
│ ├── fullscreen.vert
│ ├── triangle.frag
│ ├── triangle.vert
│ └── triangleoverlay.frag
├── constant_data
│ ├── buffer_array.frag
│ ├── buffer_array.vert
│ ├── push_constant.frag
│ ├── push_constant.vert
│ ├── ubo.frag
│ └── ubo.vert
├── debug_utils
│ ├── bloom.frag
│ ├── bloom.vert
│ ├── composition.frag
│ ├── composition.vert
│ ├── gbuffer.frag
│ └── gbuffer.vert
├── deferred
│ ├── geometry.frag
│ ├── geometry.vert
│ ├── lighting.frag
│ └── lighting.vert
├── descriptor_buffer_basic
│ ├── cube.frag
│ └── cube.vert
├── descriptor_indexing
│ ├── nonuniform-quads.frag
│ ├── nonuniform-quads.vert
│ ├── update-after-bind-quads.frag
│ └── update-after-bind-quads.vert
├── dynamic_rendering
│ ├── gbuffer.frag
│ └── gbuffer.vert
├── dynamic_uniform_buffers
│ ├── base.frag
│ └── base.vert
├── extended_dynamic_state2
│ ├── background.frag
│ ├── background.vert
│ ├── baseline.frag
│ ├── baseline.vert
│ ├── tess.frag
│ ├── tess.tesc
│ ├── tess.tese
│ └── tess.vert
├── fragment_shader_barycentric
│ ├── object.frag
│ ├── object.vert
│ ├── skybox.frag
│ └── skybox.vert
├── fragment_shading_rate
│ ├── scene.frag
│ └── scene.vert
├── fragment_shading_rate_dynamic
│ ├── generate_shading_rate.comp
│ ├── scene.frag
│ └── scene.vert
├── gpu_dispatch
│ ├── build.bat
│ ├── classify_gpu_enqueue_cs.hlsl
│ ├── classify_material_map_gpu_enqueue_cs.hlsl
│ ├── common.hlsl
│ ├── compose_gpu_enqueue_cs.hlsl
│ ├── compose_material_map_gpu_enqueue_cs.hlsl
│ ├── geometry_material_map_ps.hlsl
│ ├── geometry_material_map_vs.hlsl
│ ├── geometry_ps.hlsl
│ ├── geometry_vs.hlsl
│ ├── sanity_aggregation_cs.hlsl
│ ├── sanity_dynamic_exp_cs.hlsl
│ ├── sanity_entry_cs.hlsl
│ ├── sanity_fixed_exp_cs.hlsl
│ └── spv
│ │ ├── classify_gpu_enqueue_cs_a.spv
│ │ ├── classify_gpu_enqueue_cs_de.spv
│ │ ├── classify_gpu_enqueue_cs_fe.spv
│ │ ├── classify_material_map_gpu_enqueue_cs_a.spv
│ │ ├── classify_material_map_gpu_enqueue_cs_de.spv
│ │ ├── classify_material_map_gpu_enqueue_cs_fe.spv
│ │ ├── compose_gpu_enqueue_cs_a.spv
│ │ ├── compose_gpu_enqueue_cs_de.spv
│ │ ├── compose_gpu_enqueue_cs_fe.spv
│ │ ├── compose_gpu_enqueue_cs_t.spv
│ │ ├── compose_material_map_gpu_enqueue_cs_a.spv
│ │ ├── compose_material_map_gpu_enqueue_cs_de.spv
│ │ ├── compose_material_map_gpu_enqueue_cs_fe.spv
│ │ ├── geometry_material_map_ps.spv
│ │ ├── geometry_material_map_vs.spv
│ │ ├── geometry_ps.spv
│ │ ├── geometry_vs.spv
│ │ ├── sanity_aggregation_cs.spv
│ │ ├── sanity_dynamic_exp_cs.spv
│ │ ├── sanity_entry_cs.spv
│ │ └── sanity_fixed_exp_cs.spv
├── gpu_draw_dispatch
│ ├── build.bat
│ ├── common.hlsl
│ ├── compute_to_mesh_cs.hlsl
│ ├── compute_to_mesh_multi_cs.hlsl
│ ├── geometry_forward_ps.hlsl
│ ├── geometry_mesh_ms.hlsl
│ ├── geometry_mesh_multi_ms.hlsl
│ └── spv
│ │ ├── compute_to_mesh_cs.spv
│ │ ├── compute_to_mesh_multi_cs.spv
│ │ ├── compute_to_mesh_multi_cs_share_input.spv
│ │ ├── geometry_forward_ps.spv
│ │ ├── geometry_mesh_ms.spv
│ │ ├── geometry_mesh_multi_ms.spv
│ │ └── geometry_mesh_multi_ms_share_input.spv
├── graphics_pipeline_library
│ ├── shared.vert
│ └── uber.frag
├── hdr
│ ├── bloom.frag
│ ├── bloom.vert
│ ├── composition.frag
│ ├── composition.vert
│ ├── gbuffer.frag
│ └── gbuffer.vert
├── hlsl_shaders
│ ├── hlsl_shader.frag
│ └── hlsl_shader.vert
├── imgui.frag
├── imgui.vert
├── instancing
│ ├── instancing.frag
│ ├── instancing.vert
│ ├── planet.frag
│ ├── planet.vert
│ ├── starfield.frag
│ └── starfield.vert
├── khr_ray_tracing_basic
│ ├── closesthit.rchit
│ ├── miss.rmiss
│ └── raygen.rgen
├── khr_ray_tracing_extended
│ ├── closesthit.rchit
│ ├── miss.rmiss
│ ├── raygen.rgen
│ └── raytracing_extended.h
├── lighting.h
├── logic_op_dynamic_state
│ ├── background.frag
│ ├── background.vert
│ ├── baseline.frag
│ └── baseline.vert
├── mesh_shading
│ ├── ms.mesh
│ └── ps.frag
├── multi_draw_indirect
│ ├── cull.comp
│ ├── cull_address.comp
│ ├── multi_draw_indirect.frag
│ └── multi_draw_indirect.vert
├── open_cl_interop
│ └── procedural_texture.cl
├── pbr.frag
├── pbr.vert
├── postprocessing
│ ├── outline.frag
│ └── postprocessing.vert
├── profiles
│ ├── profiles.frag
│ └── profiles.vert
├── push_descriptors
│ ├── cube.frag
│ └── cube.vert
├── ray_queries
│ ├── ray_shadow.frag
│ └── ray_shadow.vert
├── ray_tracing_reflection
│ ├── closesthit.rchit
│ ├── miss.rmiss
│ ├── missShadow.rmiss
│ └── raygen.rgen
├── separate_image_sampler
│ ├── separate_image_sampler.frag
│ └── separate_image_sampler.vert
├── shadows
│ ├── main.frag
│ ├── main.vert
│ ├── shadowmap.frag
│ └── shadowmap.vert
├── specialization_constants
│ ├── UBOs.frag
│ └── specialization_constants.frag
├── synchronization_2
│ ├── particle.frag
│ ├── particle.vert
│ ├── particle_calculate.comp
│ └── particle_integrate.comp
├── terrain_tessellation
│ ├── skysphere.frag
│ ├── skysphere.vert
│ ├── terrain.frag
│ ├── terrain.tesc
│ ├── terrain.tese
│ └── terrain.vert
├── texture_compression_basisu
│ ├── texture.frag
│ └── texture.vert
├── texture_loading
│ ├── texture.frag
│ └── texture.vert
├── texture_mipmap_generation
│ ├── texture.frag
│ └── texture.vert
├── timeline_semaphore
│ ├── game_of_life_init.comp
│ ├── game_of_life_mutate.comp
│ ├── game_of_life_update.comp
│ ├── render.frag
│ └── render.vert
├── triangle.frag
├── triangle.vert
├── uioverlay
│ ├── uioverlay.frag
│ └── uioverlay.vert
└── vertex_dynamic_state
│ ├── gbuffer.frag
│ └── gbuffer.vert
├── tests
├── CMakeLists.txt
├── external_project
│ └── CMakeLists.txt
├── generate_sample
│ └── generate_sample_test.py
└── system_test
│ ├── CMakeLists.txt
│ ├── sub_tests
│ ├── bonza
│ │ ├── CMakeLists.txt
│ │ ├── bonza.cpp
│ │ └── bonza.h
│ └── sponza
│ │ ├── CMakeLists.txt
│ │ ├── sponza.cpp
│ │ └── sponza.h
│ ├── system_test.py
│ └── test_framework
│ ├── CMakeLists.txt
│ ├── gltf_loader_test.cpp
│ ├── gltf_loader_test.h
│ ├── vulkan_test.cpp
│ └── vulkan_test.h
└── third_party
└── CMakeLists.txt
/.copyrightignore:
--------------------------------------------------------------------------------
1 | .clang-format
2 | .gitignore
3 | .snakeignore
4 | .yml
5 | .gitmodules
6 | .jpg
7 | .png
8 | .ttf
9 | .github
10 | .jar
11 | doxyfile
12 | download_vvl.gradle
13 | build.gradle.in
14 | app.build.gradle.in
15 | settings.gradle.in
16 | gradle.properties.in
17 | local.properties.in
18 | gradlew
19 | gradlew.bat
20 | gradle.properties.in
21 | gradle-wrapper.properties.in
22 | pull_request_template.md
23 | glad.h
24 | glad.c
25 | khrplatform.h
26 | clang_format.py
27 | run-clang-tidy.py
28 | package-list.txt
29 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/issue-template.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Issue template
3 | about: 'Submit issues with Vulkan Samples '
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/docker/files/package-list.txt:
--------------------------------------------------------------------------------
1 | build-tools;31.0.0
2 | platform-tools
3 | platforms;android-28
4 | tools
5 |
--------------------------------------------------------------------------------
/.github/workflows/external.yml:
--------------------------------------------------------------------------------
1 | name: "External Project Check"
2 |
3 | on:
4 | pull_request:
5 | branches: [main]
6 | push:
7 | branches: [main]
8 |
9 | jobs:
10 | external_project:
11 | name: Build as external project
12 | strategy:
13 | matrix:
14 | platform: [windows, ubuntu, macos]
15 | runs-on: "${{ matrix.platform }}-latest"
16 | steps:
17 | - uses: actions/checkout@v3
18 | with:
19 | submodules: "recursive"
20 |
21 | - if: ${{ matrix.platform == 'ubuntu' }}
22 | name: Install RandR headers
23 | run: |
24 | sudo apt-get update
25 | sudo apt install xorg-dev libglu1-mesa-dev
26 |
27 | - run: cmake -Htests/external_project -Bbuild -DVKB_BUILD_SAMPLES=OFF
28 |
--------------------------------------------------------------------------------
/.github/workflows/image.yml:
--------------------------------------------------------------------------------
1 | name: "Update Docker Image"
2 |
3 | # Adaptation of https://docs.github.com/en/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#upgrading-a-workflow-that-accesses-ghcrio
4 |
5 | on:
6 | workflow_dispatch:
7 |
8 | env:
9 | IMAGE_NAME: vulkan-samples
10 |
11 | jobs:
12 | build:
13 | runs-on: ubuntu-latest
14 | permissions:
15 | packages: write
16 | contents: read
17 |
18 | steps:
19 | - name: Checkout Repository
20 | uses: actions/checkout@v3
21 |
22 | - name: Build Image
23 | run: cd .github/docker && docker build --tag $IMAGE_NAME .
24 |
25 | - name: Login to GitHub Container Registry
26 | run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
27 |
28 | - name: Push Image
29 | run: |
30 | IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
31 | IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
32 | echo IMAGE_ID=$IMAGE_ID
33 |
34 | VERSION=latest
35 | echo VERSION=$VERSION
36 |
37 | docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
38 | docker push $IMAGE_ID:$VERSION
39 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | assets/scenes
2 | build
3 | .vs
4 | .vscode
5 | imgui.ini
6 | doxygen/
7 | tests/system_test/artifacts
8 | tests/system_test/tmp
9 | output/*
10 | .mypy_cache
--------------------------------------------------------------------------------
/.snakeignore:
--------------------------------------------------------------------------------
1 | glfw*
2 | glad*
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 |
19 |
20 | A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
21 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-slate
2 | exclude: [third_party]
3 |
--------------------------------------------------------------------------------
/app/android/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/ic_launcher-web.png
--------------------------------------------------------------------------------
/app/android/res/drawable/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/drawable/icon.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/android/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/android/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/app/android/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 | #008FBE
22 | #333E47
23 | #F26B21
24 |
25 |
--------------------------------------------------------------------------------
/app/android/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 | #000000
22 |
23 |
--------------------------------------------------------------------------------
/app/android/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/plugins/plugins.h:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2020-2021, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #pragma once
19 |
20 | #include "platform/plugins/plugin.h"
21 |
22 | namespace plugins
23 | {
24 | extern std::vector get_all();
25 | } // namespace plugins
--------------------------------------------------------------------------------
/assets_local/.gitattributes:
--------------------------------------------------------------------------------
1 | *.gltf -diff
2 |
--------------------------------------------------------------------------------
/assets_local/README.md:
--------------------------------------------------------------------------------
1 | # Attributions
2 |
3 | monkey.gltf is Blender Suzanne model with added UV map and exported to glTF.
4 |
5 | nanite_mat_id_*.png are screenshots of Unreal Engine 5 scenes rendered with Nanite.
6 |
--------------------------------------------------------------------------------
/assets_local/nanite_mat_id_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/assets_local/nanite_mat_id_01.png
--------------------------------------------------------------------------------
/assets_local/nanite_mat_id_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/assets_local/nanite_mat_id_02.png
--------------------------------------------------------------------------------
/banner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/banner.jpg
--------------------------------------------------------------------------------
/bldsys/cmake/template/gradle/build.gradle.in:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.application' version '7.4.2' apply false
3 | id 'com.android.library' version '7.4.2' apply false
4 | }
5 |
6 | task clean(type: Delete) {
7 | delete rootProject.buildDir
8 | }
9 |
--------------------------------------------------------------------------------
/bldsys/cmake/template/gradle/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/bldsys/cmake/template/gradle/gradle-wrapper.jar
--------------------------------------------------------------------------------
/bldsys/cmake/template/gradle/gradle-wrapper.properties.in:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/bldsys/cmake/template/gradle/gradle.properties.in:
--------------------------------------------------------------------------------
1 | android.useAndroidX=true
2 | android.enableJetifier=false
3 | org.gradle.parallel=true
4 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
5 | org.gradle.caching=true
6 | android.prefabVersion=2.0.0
7 |
8 |
--------------------------------------------------------------------------------
/bldsys/cmake/template/gradle/settings.gradle.in:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | google()
5 | mavenCentral()
6 | }
7 | }
8 | dependencyResolutionManagement {
9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
10 | repositories {
11 | google()
12 | mavenCentral()
13 | }
14 | }
15 | rootProject.name = "@PROJECT_NAME@"
16 | include ':app'
17 |
--------------------------------------------------------------------------------
/bldsys/cmake/template/sample/CMakeLists.txt.in:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2019, Arm Limited and Contributors
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 | #
5 | # Licensed under the Apache License, Version 2.0 the "License";
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 |
18 | get_filename_component(FOLDER_NAME ${CMAKE_CURRENT_LIST_DIR} NAME)
19 | get_filename_component(PARENT_DIR ${CMAKE_CURRENT_LIST_DIR} PATH)
20 | get_filename_component(CATEGORY_NAME ${PARENT_DIR} NAME)
21 |
22 | add_sample(
23 | ID ${FOLDER_NAME}
24 | CATEGORY ${CATEGORY_NAME}
25 | AUTHOR "Khronos"
26 | NAME "@SAMPLE_NAME@"
27 | DESCRIPTION "Sample description")
28 |
--------------------------------------------------------------------------------
/bldsys/cmake/template/sample/sample.h.in:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2019, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #pragma once
19 |
20 | #include "rendering/render_pipeline.h"
21 | #include "scene_graph/components/camera.h"
22 | #include "vulkan_sample.h"
23 |
24 | class @SAMPLE_NAME@ : public vkb::VulkanSample
25 | {
26 | public:
27 | @SAMPLE_NAME@();
28 |
29 | virtual bool prepare(vkb::Platform &platform) override;
30 |
31 | virtual ~@SAMPLE_NAME@() = default;
32 | };
33 |
34 | std::unique_ptr create_@SAMPLE_NAME_FILE@();
35 |
--------------------------------------------------------------------------------
/bldsys/scripts/clang-format.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2023, Thomas Atkinson
3 | #
4 | # SPDX-License-Identifier: Apache-2.0
5 | #
6 | # Licensed under the Apache License, Version 2.0 the "License";
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | # Usage: ./bldsys/scripts/clang-format HEAD
20 | # Usage: ./bldsys/scripts/clang-format master
21 | # Usage: ./bldsys/scripts/clang-format
22 |
23 | set -ux
24 |
25 | for file in `git diff-index --name-only $1 | grep -iE '\.(cpp|cc|h|hpp)$' ` ; do
26 | if [ -f $file ]; then
27 | clang-format -i $file
28 | fi
29 | done
--------------------------------------------------------------------------------
/docs/images/debug-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/docs/images/debug-graph.png
--------------------------------------------------------------------------------
/docs/images/debug-window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/docs/images/debug-window.png
--------------------------------------------------------------------------------
/framework/common/error.cpp:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2018-2020, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #include "error.h"
19 |
20 | #include "helpers.h"
21 |
22 | namespace vkb
23 | {
24 | VulkanException::VulkanException(const VkResult result, const std::string &msg) :
25 | result{result},
26 | std::runtime_error{msg}
27 | {
28 | error_message = std::string(std::runtime_error::what()) + std::string{" : "} + to_string(result);
29 | }
30 |
31 | const char *VulkanException::what() const noexcept
32 | {
33 | return error_message.c_str();
34 | }
35 | } // namespace vkb
36 |
--------------------------------------------------------------------------------
/framework/common/glm_common.h:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2019, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #pragma once
19 |
20 | #ifndef GLM_FORCE_RADIANS
21 | # define GLM_FORCE_RADIANS
22 | #endif
23 | #ifndef GLM_FORCE_DEPTH_ZERO_TO_ONE
24 | # define GLM_FORCE_DEPTH_ZERO_TO_ONE
25 | #endif
26 | #include
27 | #include
28 | #include
--------------------------------------------------------------------------------
/framework/common/hpp_strings.h:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved.
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #pragma once
19 |
20 | #include
21 |
22 | #include
23 |
24 | namespace vkb
25 | {
26 | namespace common
27 | {
28 | /**
29 | * @brief facade helper functions around the functions in common/strings.h, providing a vulkan.hpp-based interface
30 | */
31 | std::string to_string(vk::Extent2D const &extent)
32 | {
33 | return vkb::to_string(static_cast(extent));
34 | }
35 | } // namespace common
36 | } // namespace vkb
37 |
--------------------------------------------------------------------------------
/framework/graphing/graph_node.cpp:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2018-2020, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 | #include "graphing/graph_node.h"
18 |
19 | namespace vkb
20 | {
21 | namespace graphing
22 | {
23 | Node::Node(size_t id, const char *title, const char *style, const nlohmann::json &data)
24 | {
25 | attributes["id"] = id;
26 | attributes["label"] = title;
27 | attributes["data"] = data;
28 | attributes["style"] = style;
29 | }
30 | } // namespace graphing
31 | } // namespace vkb
32 |
--------------------------------------------------------------------------------
/framework/platform/unix/unix_d2d_platform.h:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2019-2021, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #pragma once
19 |
20 | #include "platform/platform.h"
21 |
22 | namespace vkb
23 | {
24 | class UnixD2DPlatform : public Platform
25 | {
26 | public:
27 | UnixD2DPlatform(int argc, char **argv);
28 |
29 | virtual ~UnixD2DPlatform() = default;
30 |
31 | virtual const char *get_surface_extension() override;
32 |
33 | protected:
34 | virtual void create_window(const Window::Properties &properties) override;
35 | };
36 | } // namespace vkb
37 |
--------------------------------------------------------------------------------
/framework/scene_graph/component.cpp:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2018-2019, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #include "component.h"
19 |
20 | #include
21 |
22 | #include "node.h"
23 |
24 | namespace vkb
25 | {
26 | namespace sg
27 | {
28 | Component::Component(const std::string &name) :
29 | name{name}
30 | {}
31 |
32 | const std::string &Component::get_name() const
33 | {
34 | return name;
35 | }
36 | } // namespace sg
37 | } // namespace vkb
38 |
--------------------------------------------------------------------------------
/framework/scene_graph/components/image/ktx.h:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2019-2022, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #pragma once
19 |
20 | #include "scene_graph/components/image.h"
21 |
22 | namespace vkb
23 | {
24 | namespace sg
25 | {
26 | class Ktx : public Image
27 | {
28 | public:
29 | Ktx(const std::string &name, const std::vector &data, ContentType content_type);
30 |
31 | virtual ~Ktx() = default;
32 | };
33 |
34 | } // namespace sg
35 | } // namespace vkb
--------------------------------------------------------------------------------
/framework/scene_graph/components/image/stb.h:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2019-2022, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #pragma once
19 |
20 | #include "scene_graph/components/image.h"
21 |
22 | namespace vkb
23 | {
24 | namespace sg
25 | {
26 | class Stb : public Image
27 | {
28 | public:
29 | Stb(const std::string &name, const std::vector &data, ContentType content_type);
30 |
31 | virtual ~Stb() = default;
32 | };
33 |
34 | } // namespace sg
35 | } // namespace vkb
36 |
--------------------------------------------------------------------------------
/framework/scene_graph/components/material.cpp:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2018-2019, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #include "material.h"
19 |
20 | namespace vkb
21 | {
22 | namespace sg
23 | {
24 | Material::Material(const std::string &name) :
25 | Component{name}
26 | {}
27 |
28 | std::type_index Material::get_type()
29 | {
30 | return typeid(Material);
31 | }
32 |
33 | } // namespace sg
34 | } // namespace vkb
35 |
--------------------------------------------------------------------------------
/framework/scene_graph/components/pbr_material.cpp:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2018-2019, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #include "pbr_material.h"
19 |
20 | namespace vkb
21 | {
22 | namespace sg
23 | {
24 | PBRMaterial::PBRMaterial(const std::string &name) :
25 | Material{name}
26 | {}
27 |
28 | std::type_index PBRMaterial::get_type()
29 | {
30 | return typeid(PBRMaterial);
31 | }
32 | } // namespace sg
33 | } // namespace vkb
34 |
--------------------------------------------------------------------------------
/framework/scene_graph/components/sampler.cpp:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2018-2019, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #include "sampler.h"
19 |
20 | namespace vkb
21 | {
22 | namespace sg
23 | {
24 | Sampler::Sampler(const std::string &name, core::Sampler &&vk_sampler) :
25 | Component{name},
26 | vk_sampler{std::move(vk_sampler)}
27 | {}
28 |
29 | std::type_index Sampler::get_type()
30 | {
31 | return typeid(Sampler);
32 | }
33 | } // namespace sg
34 | } // namespace vkb
35 |
--------------------------------------------------------------------------------
/framework/timer.cpp:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2019, Arm Limited and Contributors
2 | *
3 | * SPDX-License-Identifier: Apache-2.0
4 | *
5 | * Licensed under the Apache License, Version 2.0 the "License";
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | #include "timer.h"
19 |
20 | namespace vkb
21 | {
22 | Timer::Timer() :
23 | start_time{Clock::now()},
24 | previous_tick{Clock::now()}
25 | {
26 | }
27 |
28 | void Timer::start()
29 | {
30 | if (!running)
31 | {
32 | running = true;
33 | start_time = Clock::now();
34 | }
35 | }
36 |
37 | void Timer::lap()
38 | {
39 | lapping = true;
40 | lap_time = Clock::now();
41 | }
42 |
43 | bool Timer::is_running() const
44 | {
45 | return running;
46 | }
47 | } // namespace vkb
48 |
--------------------------------------------------------------------------------
/samples/api/README.md:
--------------------------------------------------------------------------------
1 |
19 |
20 | # API samples
21 |
22 | The goal of these samples is to demonstrate how to use a given Vulkan feature at the API level with as little abstraction as possible.
23 |
24 | A list of all API samples can be found [here](../README.md#api-samples).
--------------------------------------------------------------------------------
/samples/api/compute_nbody/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### Compute shader N-Body simulation
20 |
21 | Compute shader example that uses two passes and shared compute shader memory for simulating a N-Body particle system.
22 |
--------------------------------------------------------------------------------
/samples/api/dynamic_uniform_buffers/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### Dynamic Uniform buffers
20 |
21 | Dynamic uniform buffers are used for rendering multiple objects with separate matrices stored in a single uniform buffer object, that are addressed dynamically.
22 |
--------------------------------------------------------------------------------
/samples/api/hdr/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### High dynamic range
20 |
21 | Implements a high dynamic range rendering pipeline using 16/32 bit floating point precision for all calculations.
22 |
--------------------------------------------------------------------------------
/samples/api/hello_triangle/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2019-2021, Arm Limited and Contributors
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 | #
5 | # Licensed under the Apache License, Version 2.0 the "License";
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 |
18 | get_filename_component(FOLDER_NAME ${CMAKE_CURRENT_LIST_DIR} NAME)
19 | get_filename_component(PARENT_DIR ${CMAKE_CURRENT_LIST_DIR} PATH)
20 | get_filename_component(CATEGORY_NAME ${PARENT_DIR} NAME)
21 |
22 | add_sample(
23 | ID ${FOLDER_NAME}
24 | CATEGORY ${CATEGORY_NAME}
25 | AUTHOR "Arm"
26 | NAME "Hello Triangle"
27 | DESCRIPTION "An introduction into Vulkan and its respective objects."
28 | SHADER_FILES_GLSL
29 | "triangle.vert"
30 | "triangle.frag")
31 |
--------------------------------------------------------------------------------
/samples/api/hello_triangle/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### Hello Triangle
20 |
21 | A self-contained (minimal use of framework) sample that illustrates the rendering of a triangle.
22 |
--------------------------------------------------------------------------------
/samples/api/hpp_compute_nbody/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### HPP Compute shader N-Body simulation
20 |
21 | A transcoded version of the API sample [Compute N-Body](https://github.com/KhronosGroup/Vulkan-Samples/tree/master/samples/api/compute_nbody) that illustrates the usage of the C++ bindings of vulkan provided by vulkan.hpp.
22 |
--------------------------------------------------------------------------------
/samples/api/hpp_dynamic_uniform_buffers/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### HPP Dynamic Uniform Buffers
20 |
21 | A transcoded version of the API sample [Dynamic Uniform buffers](https://github.com/KhronosGroup/Vulkan-Samples/tree/master/samples/api/dynamic_uniform_buffers) that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.
22 |
--------------------------------------------------------------------------------
/samples/api/hpp_hdr/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### HPP High dynamic range
20 |
21 | A transcoded version of the API sample [High dynamic range](https://github.com/KhronosGroup/Vulkan-Samples/tree/master/samples/api/hdr) that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.
--------------------------------------------------------------------------------
/samples/api/hpp_hello_triangle/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### HPP Hello Triangle
20 |
21 | A transcoded version of the API sample [Hello Triangle](https://github.com/KhronosGroup/Vulkan-Samples/tree/master/samples/api/hello_triangle) that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.
22 |
--------------------------------------------------------------------------------
/samples/api/hpp_instancing/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### HPP Instancing
20 |
21 | A transcoded version of the API sample [Instancing](https://github.com/KhronosGroup/Vulkan-Samples/tree/master/samples/api/instancing) that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.
22 |
--------------------------------------------------------------------------------
/samples/api/hpp_terrain_tessellation/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### HPP Terrain Tessellation
20 |
21 | A transcoded version of the API sample [Terrain Tessellation](https://github.com/KhronosGroup/Vulkan-Samples/tree/master/samples/api/terrain_tessellation) that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.
22 |
--------------------------------------------------------------------------------
/samples/api/hpp_texture_loading/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### HPP Texture Loading
20 |
21 | A transcoded version of the API sample [Texture loading](https://github.com/KhronosGroup/Vulkan-Samples/tree/master/samples/api/texture_loading) that illustrates the usage of the C++ bindings of Vulkan provided by vulkan.hpp.
22 |
--------------------------------------------------------------------------------
/samples/api/instancing/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### Instancing
20 |
21 | Uses the instancing feature for rendering many instances of the same mesh from a single vertex buffer with variable parameters and textures.
22 |
--------------------------------------------------------------------------------
/samples/api/terrain_tessellation/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### Terrain Tessellation
20 |
21 | Uses a tessellation shader for rendering a terrain with dynamic level-of-detail and frustum culling.
22 |
--------------------------------------------------------------------------------
/samples/api/texture_loading/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### Texture loading
20 |
21 | Loading and rendering of a 2D texture map from a file.
22 |
--------------------------------------------------------------------------------
/samples/api/texture_mipmap_generation/images/mip_mapping_anisotropic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/api/texture_mipmap_generation/images/mip_mapping_anisotropic.jpg
--------------------------------------------------------------------------------
/samples/api/texture_mipmap_generation/images/mip_mapping_bilinear.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/api/texture_mipmap_generation/images/mip_mapping_bilinear.jpg
--------------------------------------------------------------------------------
/samples/api/texture_mipmap_generation/images/mip_mapping_off.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/api/texture_mipmap_generation/images/mip_mapping_off.jpg
--------------------------------------------------------------------------------
/samples/extensions/README.md:
--------------------------------------------------------------------------------
1 |
19 |
20 | # Extension samples
21 |
22 | The goal of these samples is to demonstrate how to use a particular Vulkan extension at the API level with as little abstraction as possible.
23 |
24 | A list of all extension samples can be found [here](../README.md#extension-samples).
--------------------------------------------------------------------------------
/samples/extensions/buffer_device_address/images/sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/buffer_device_address/images/sample.png
--------------------------------------------------------------------------------
/samples/extensions/conditional_rendering/images/conditional-buffer-mapping.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/conditional_rendering/images/conditional-buffer-mapping.png
--------------------------------------------------------------------------------
/samples/extensions/conditional_rendering/images/sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/conditional_rendering/images/sample.png
--------------------------------------------------------------------------------
/samples/extensions/conservative_rasterization/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### Conservative Rasterization
20 |
21 | **Extension**: [```VK_EXT_conservative_rasterization```](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization)
22 |
23 | Uses conservative rasterization to change the way fragments are generated. Enables overestimation to generate fragments for every pixel touched instead of only pixels that are fully covered.
24 |
--------------------------------------------------------------------------------
/samples/extensions/debug_utils/images/renderdoc_final.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/debug_utils/images/renderdoc_final.jpg
--------------------------------------------------------------------------------
/samples/extensions/debug_utils/images/renderdoc_launch_settings.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/debug_utils/images/renderdoc_launch_settings.jpg
--------------------------------------------------------------------------------
/samples/extensions/debug_utils/images/renderdoc_nested_cmd.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/debug_utils/images/renderdoc_nested_cmd.jpg
--------------------------------------------------------------------------------
/samples/extensions/debug_utils/images/renderdoc_no_labels.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/debug_utils/images/renderdoc_no_labels.jpg
--------------------------------------------------------------------------------
/samples/extensions/debug_utils/images/renderdoc_pipeline_state_names.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/debug_utils/images/renderdoc_pipeline_state_names.jpg
--------------------------------------------------------------------------------
/samples/extensions/debug_utils/images/renderdoc_resource_inspector_names.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/debug_utils/images/renderdoc_resource_inspector_names.jpg
--------------------------------------------------------------------------------
/samples/extensions/debug_utils/images/renderdoc_resource_inspector_no_names.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/debug_utils/images/renderdoc_resource_inspector_no_names.jpg
--------------------------------------------------------------------------------
/samples/extensions/debug_utils/images/renderdoc_with_labels.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/debug_utils/images/renderdoc_with_labels.jpg
--------------------------------------------------------------------------------
/samples/extensions/descriptor_indexing/images/non-uniform-draw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/descriptor_indexing/images/non-uniform-draw.png
--------------------------------------------------------------------------------
/samples/extensions/descriptor_indexing/images/non-uniform-usage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/descriptor_indexing/images/non-uniform-usage.png
--------------------------------------------------------------------------------
/samples/extensions/descriptor_indexing/images/sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/descriptor_indexing/images/sample.png
--------------------------------------------------------------------------------
/samples/extensions/descriptor_indexing/images/update-after-bind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/descriptor_indexing/images/update-after-bind.png
--------------------------------------------------------------------------------
/samples/extensions/dynamic_rendering/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020-2021, Holochip Corporation
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 | #
5 | # Licensed under the Apache License, Version 2.0 the "License";
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 |
18 | get_filename_component(FOLDER_NAME ${CMAKE_CURRENT_LIST_DIR} NAME)
19 | get_filename_component(PARENT_DIR ${CMAKE_CURRENT_LIST_DIR} PATH)
20 | get_filename_component(CATEGORY_NAME ${PARENT_DIR} NAME)
21 |
22 | add_sample(
23 | ID ${FOLDER_NAME}
24 | CATEGORY ${CATEGORY_NAME}
25 | AUTHOR "Holochip"
26 | NAME "Dynamic Rendering"
27 | DESCRIPTION "Demonstrates the dynamic rendering extension to streamline render passes and avoid the requirement of render pass objects"
28 | )
29 |
--------------------------------------------------------------------------------
/samples/extensions/extended_dynamic_state2/images/extended_dynamic_state2_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/extended_dynamic_state2/images/extended_dynamic_state2_screenshot.png
--------------------------------------------------------------------------------
/samples/extensions/fragment_shader_barycentric/images/fragment_shader_barycentric_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/fragment_shader_barycentric/images/fragment_shader_barycentric_screenshot.png
--------------------------------------------------------------------------------
/samples/extensions/fragment_shading_rate/README.md:
--------------------------------------------------------------------------------
1 |
19 | ### Fragment shading rate
20 |
21 | **Extension**: [```VK_KHR_fragment_shading_rate```](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_fragment_shading_rate.html)
22 |
23 | Uses a special framebuffer attachment to control fragment shading rates for different framebuffer regions. This allows explicit control over the number of fragment shader invocations for each pixel covered by a fragment, which is e.g. useful for foveated rendering.
24 |
25 |
--------------------------------------------------------------------------------
/samples/extensions/fragment_shading_rate_dynamic/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021, Holochip
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 | #
5 | # Licensed under the Apache License, Version 2.0 the "License";
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 |
18 | get_filename_component(FOLDER_NAME ${CMAKE_CURRENT_LIST_DIR} NAME)
19 | get_filename_component(PARENT_DIR ${CMAKE_CURRENT_LIST_DIR} PATH)
20 | get_filename_component(CATEGORY_NAME ${PARENT_DIR} NAME)
21 |
22 | add_sample_with_tags(
23 | ID ${FOLDER_NAME}
24 | CATEGORY ${CATEGORY_NAME}
25 | AUTHOR "Holochip"
26 | NAME "Dynamic fragment shading rate"
27 | DESCRIPTION "Using dynamically-generated fragment shading rate patterns generated each frame")
28 |
--------------------------------------------------------------------------------
/samples/extensions/fragment_shading_rate_dynamic/diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/fragment_shading_rate_dynamic/diagram.png
--------------------------------------------------------------------------------
/samples/extensions/fragment_shading_rate_dynamic/frequency.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/fragment_shading_rate_dynamic/frequency.png
--------------------------------------------------------------------------------
/samples/extensions/fragment_shading_rate_dynamic/rendered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/fragment_shading_rate_dynamic/rendered.png
--------------------------------------------------------------------------------
/samples/extensions/fragment_shading_rate_dynamic/shading_rate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/Vulkan-Samples/0cfdd95ac6ffaec133c5b107be3e2b9c173120d4/samples/extensions/fragment_shading_rate_dynamic/shading_rate.png
--------------------------------------------------------------------------------
/samples/extensions/gpu_draw_dispatch/README.md:
--------------------------------------------------------------------------------
1 | Command line options
2 | --------------------
3 |
4 | You can select various options (some can be combined) when running the application:
5 |
6 | vulkan_samples [--log-fps] [--width W] [--height H] [-o