|
62 | 62 | ** xref:courses/18_Ray_tracing/06_Reflections.adoc[Reflections] |
63 | 63 | ** xref:courses/18_Ray_tracing/07_Conclusion.adoc[Conclusion] |
64 | 64 | * xref:courses/siggraph2026_vk_tutorial/00_Overview.adoc[How to write a Vulkan application in 2026] |
65 | | -* xref:90_FAQ.adoc[FAQ] |
66 | | -* link:https://github.com/KhronosGroup/Vulkan-Tutorial[GitHub Repository, window=_blank] |
67 | 65 |
|
68 | 66 | * Building a Simple Engine |
69 | 67 | ** xref:Building_a_Simple_Engine/introduction.adoc[Introduction] |
|
219 | 217 | *** xref:Advanced_Vulkan_Compute/12_Mobile_and_Embedded_Compute/04_embedded_beyond_mobile.adoc[Beyond Mobile: Embedded and Headless Compute] |
220 | 218 | ** xref:Advanced_Vulkan_Compute/conclusion.adoc[Conclusion] |
221 | 219 |
|
| 220 | +* Synchronization 2 |
| 221 | +** xref:Synchronization/introduction.adoc[Introduction] |
| 222 | +** Anatomy of a Dependency |
| 223 | +*** xref:Synchronization/Anatomy_of_a_Dependency/01_introduction.adoc[Introduction] |
| 224 | +*** xref:Synchronization/Anatomy_of_a_Dependency/02_execution_vs_memory.adoc[Execution vs. Memory] |
| 225 | +*** xref:Synchronization/Anatomy_of_a_Dependency/03_sync2_advantage.adoc[Sync 2 Advantage] |
| 226 | +*** xref:Synchronization/Anatomy_of_a_Dependency/04_refined_pipeline_stages.adoc[Refined Pipeline Stages] |
| 227 | +*** xref:Synchronization/Anatomy_of_a_Dependency/05_conclusion.adoc[Conclusion] |
| 228 | +** Pipeline Barriers and Transitions |
| 229 | +*** xref:Synchronization/Pipeline_Barriers_Transitions/01_introduction.adoc[Introduction] |
| 230 | +*** xref:Synchronization/Pipeline_Barriers_Transitions/02_image_barrier.adoc[The Image Barrier] |
| 231 | +*** xref:Synchronization/Pipeline_Barriers_Transitions/03_queue_family_ownership.adoc[Queue Family Ownership] |
| 232 | +*** xref:Synchronization/Pipeline_Barriers_Transitions/04_global_vs_local_barriers.adoc[Global vs. Local Barriers] |
| 233 | +** Timeline Semaphores |
| 234 | +*** xref:Synchronization/Timeline_Semaphores/01_introduction.adoc[Introduction] |
| 235 | +*** xref:Synchronization/Timeline_Semaphores/02_unifying_sync.adoc[Unifying Sync] |
| 236 | +*** xref:Synchronization/Timeline_Semaphores/03_monotonic_counter.adoc[Monotonic Counter] |
| 237 | +*** xref:Synchronization/Timeline_Semaphores/04_wait_before_signal.adoc[Wait Before Signal] |
| 238 | +** Frame-in-Flight Architecture |
| 239 | +*** xref:Synchronization/Frame_in_Flight/01_introduction.adoc[Introduction] |
| 240 | +*** xref:Synchronization/Frame_in_Flight/02_managing_concurrent_frames.adoc[Managing Concurrent Frames] |
| 241 | +*** xref:Synchronization/Frame_in_Flight/03_resource_lifetimes.adoc[Resource Lifetimes] |
| 242 | +** Asynchronous Compute & Overlap |
| 243 | +*** xref:Synchronization/Async_Compute_Overlap/01_introduction.adoc[Introduction] |
| 244 | +*** xref:Synchronization/Async_Compute_Overlap/02_maximizing_throughput.adoc[Maximizing Throughput] |
| 245 | +*** xref:Synchronization/Async_Compute_Overlap/03_async_post_processing.adoc[Async Post-processing] |
| 246 | +*** xref:Synchronization/Async_Compute_Overlap/04_bubble_problem.adoc[The Bubble Problem] |
| 247 | +** Transfer Queues & Asset Streaming Sync |
| 248 | +*** xref:Synchronization/Transfer_Queues_Streaming/01_introduction.adoc[Introduction] |
| 249 | +*** xref:Synchronization/Transfer_Queues_Streaming/02_non_blocking_uploads.adoc[Non-blocking Uploads] |
| 250 | +*** xref:Synchronization/Transfer_Queues_Streaming/03_staging_sync.adoc[Staging Sync] |
| 251 | +** Synchronization in Dynamic Rendering |
| 252 | +*** xref:Synchronization/Dynamic_Rendering_Sync/01_introduction.adoc[Introduction] |
| 253 | +*** xref:Synchronization/Dynamic_Rendering_Sync/02_subpass_replacement.adoc[Subpass Replacement] |
| 254 | +*** xref:Synchronization/Dynamic_Rendering_Sync/03_local_read_sync.adoc[Local Read Sync] |
| 255 | +** Host Image Copies & Memory Mapped Sync |
| 256 | +*** xref:Synchronization/Host_Image_Copies_Memory_Sync/01_introduction.adoc[Introduction] |
| 257 | +*** xref:Synchronization/Host_Image_Copies_Memory_Sync/02_cpu_to_image_access.adoc[CPU-to-Image Access] |
| 258 | +*** xref:Synchronization/Host_Image_Copies_Memory_Sync/03_visibility_flushes.adoc[Visibility Flushes] |
| 259 | +** Debugging with Synchronization Validation |
| 260 | +*** xref:Synchronization/Synchronization_Validation/01_introduction.adoc[Introduction] |
| 261 | +*** xref:Synchronization/Synchronization_Validation/02_validation_layer.adoc[Validation Layer] |
| 262 | +*** xref:Synchronization/Synchronization_Validation/03_interpreting_vuids.adoc[Interpreting VUIDs] |
| 263 | +** Profiling, Batching, and Optimization |
| 264 | +*** xref:Synchronization/Profiling_Optimization/01_introduction.adoc[Introduction] |
| 265 | +*** xref:Synchronization/Profiling_Optimization/02_barrier_batching.adoc[Barrier Batching] |
| 266 | +*** xref:Synchronization/Profiling_Optimization/03_visualizing_stalls.adoc[Visualizing Stalls] |
| 267 | +
|
| 268 | +* Advanced glTF: High-Performance Character Pipelines |
| 269 | +** xref:Advanced_glTF/introduction.adoc[Introduction] |
| 270 | +** Scene Graph & Transform Hierarchy |
| 271 | +*** xref:Advanced_glTF/Scene_Graph_Hierarchy/01_introduction.adoc[Introduction] |
| 272 | +*** xref:Advanced_glTF/Scene_Graph_Hierarchy/02_engine_expansion.adoc[Engine expansion] |
| 273 | +*** xref:Advanced_glTF/Scene_Graph_Hierarchy/03_physics_syncing.adoc[Physics syncing] |
| 274 | +*** xref:Advanced_glTF/Scene_Graph_Hierarchy/04_metadata_and_physics_extras.adoc[Metadata & physics extras] |
| 275 | +*** xref:Advanced_glTF/Scene_Graph_Hierarchy/05_conclusion.adoc[Conclusion] |
| 276 | +** Skeletal & Compute Skinning |
| 277 | +*** xref:Advanced_glTF/Skeletal_Compute_Skinning/01_introduction.adoc[Introduction] |
| 278 | +*** xref:Advanced_glTF/Skeletal_Compute_Skinning/02_skinning_math.adoc[The mathematics of skinning] |
| 279 | +*** xref:Advanced_glTF/Skeletal_Compute_Skinning/03_compute_skinning.adoc[The compute skinning pipeline] |
| 280 | +*** xref:Advanced_glTF/Skeletal_Compute_Skinning/04_shared_vertex_buffer.adoc[Skin once, use everywhere] |
| 281 | +*** xref:Advanced_glTF/Skeletal_Compute_Skinning/05_interpolation_blending.adoc[Interpolation & blending] |
| 282 | +*** xref:Advanced_glTF/Skeletal_Compute_Skinning/06_conclusion.adoc[Conclusion] |
| 283 | +** Physics Integration |
| 284 | +*** xref:Advanced_glTF/Physics_Integration/01_introduction.adoc[Introduction] |
| 285 | +*** xref:Advanced_glTF/Physics_Integration/02_bone_proxy_colliders.adoc[Bone proxy colliders] |
| 286 | +*** xref:Advanced_glTF/Physics_Integration/03_constraints_and_joint_limits.adoc[Constraints & joint limits] |
| 287 | +*** xref:Advanced_glTF/Physics_Integration/04_ragdoll_handoff.adoc[Ragdoll handoff] |
| 288 | +*** xref:Advanced_glTF/Physics_Integration/05_self_collision_filtering.adoc[Self-collision filtering] |
| 289 | +*** xref:Advanced_glTF/Physics_Integration/06_conclusion.adoc[Conclusion] |
| 290 | +** Procedural Animation & IK |
| 291 | +*** xref:Advanced_glTF/Procedural_Animation_IK/01_introduction.adoc[Introduction] |
| 292 | +*** xref:Advanced_glTF/Procedural_Animation_IK/02_ccd_ik.adoc[CCD IK] |
| 293 | +*** xref:Advanced_glTF/Procedural_Animation_IK/03_fabrik.adoc[FABRIK] |
| 294 | +*** xref:Advanced_glTF/Procedural_Animation_IK/04_foot_placement.adoc[Foot placement] |
| 295 | +*** xref:Advanced_glTF/Procedural_Animation_IK/05_look_at.adoc[Look-at] |
| 296 | +*** xref:Advanced_glTF/Procedural_Animation_IK/06_physics_driven_lean.adoc[Physics-driven lean] |
| 297 | +*** xref:Advanced_glTF/Procedural_Animation_IK/07_conclusion.adoc[Conclusion] |
| 298 | +** Morph Targets & Facial Animation |
| 299 | +*** xref:Advanced_glTF/Morph_Targets_Facial_Animation/01_introduction.adoc[Introduction] |
| 300 | +*** xref:Advanced_glTF/Morph_Targets_Facial_Animation/02_shape_key_ingestion.adoc[Shape key ingestion] |
| 301 | +*** xref:Advanced_glTF/Morph_Targets_Facial_Animation/03_bindless_morph_buffers.adoc[Bindless morph buffers] |
| 302 | +*** xref:Advanced_glTF/Morph_Targets_Facial_Animation/04_conclusion.adoc[Conclusion] |
| 303 | +** Tooling & Production Pipeline |
| 304 | +*** xref:Advanced_glTF/Tooling_Production_Pipeline/01_introduction.adoc[Introduction] |
| 305 | +*** xref:Advanced_glTF/Tooling_Production_Pipeline/02_blender_workflow.adoc[Blender workflow] |
| 306 | +*** xref:Advanced_glTF/Tooling_Production_Pipeline/03_validation.adoc[Validation] |
| 307 | +*** xref:Advanced_glTF/Tooling_Production_Pipeline/04_gltf_viewer_audit.adoc[glTF viewer audit] |
| 308 | +*** xref:Advanced_glTF/Tooling_Production_Pipeline/05_conclusion.adoc[Conclusion] |
| 309 | +** Debugging & Visual Auditing |
| 310 | +*** xref:Advanced_glTF/Debugging_Visual_Auditing/01_introduction.adoc[Introduction] |
| 311 | +*** xref:Advanced_glTF/Debugging_Visual_Auditing/02_debug_drawers.adoc[Debug drawers] |
| 312 | +*** xref:Advanced_glTF/Debugging_Visual_Auditing/03_skinning_heatmaps.adoc[Skinning heatmaps] |
| 313 | +*** xref:Advanced_glTF/Debugging_Visual_Auditing/04_renderdoc_analysis.adoc[RenderDoc analysis] |
| 314 | +*** xref:Advanced_glTF/Debugging_Visual_Auditing/05_conclusion.adoc[Conclusion] |
| 315 | +** xref:Advanced_glTF/appendix_types.adoc[Appendix: Common Types Reference] |
| 316 | +
|
222 | 317 | * Machine Learning Inference |
223 | 318 | ** xref:ML_Inference/introduction.adoc[Introduction] |
224 | 319 | ** ML Inference Pipeline |
|
295 | 390 | *** xref:ML_Inference/Embedded_Applications/09_conclusion.adoc[Conclusion] |
296 | 391 | ** xref:ML_Inference/glossary.adoc[Glossary] |
297 | 392 |
|
298 | | -* Advanced glTF: High-Performance Character Pipelines |
299 | | -** xref:Advanced_glTF/introduction.adoc[Introduction] |
300 | | -** Scene Graph & Transform Hierarchy |
301 | | -*** xref:Advanced_glTF/Scene_Graph_Hierarchy/01_introduction.adoc[Introduction] |
302 | | -*** xref:Advanced_glTF/Scene_Graph_Hierarchy/02_engine_expansion.adoc[Engine expansion] |
303 | | -*** xref:Advanced_glTF/Scene_Graph_Hierarchy/03_physics_syncing.adoc[Physics syncing] |
304 | | -*** xref:Advanced_glTF/Scene_Graph_Hierarchy/04_metadata_and_physics_extras.adoc[Metadata & physics extras] |
305 | | -*** xref:Advanced_glTF/Scene_Graph_Hierarchy/05_conclusion.adoc[Conclusion] |
306 | | -** Skeletal & Compute Skinning |
307 | | -*** xref:Advanced_glTF/Skeletal_Compute_Skinning/01_introduction.adoc[Introduction] |
308 | | -*** xref:Advanced_glTF/Skeletal_Compute_Skinning/02_skinning_math.adoc[The mathematics of skinning] |
309 | | -*** xref:Advanced_glTF/Skeletal_Compute_Skinning/03_compute_skinning.adoc[The compute skinning pipeline] |
310 | | -*** xref:Advanced_glTF/Skeletal_Compute_Skinning/04_shared_vertex_buffer.adoc[Skin once, use everywhere] |
311 | | -*** xref:Advanced_glTF/Skeletal_Compute_Skinning/05_interpolation_blending.adoc[Interpolation & blending] |
312 | | -*** xref:Advanced_glTF/Skeletal_Compute_Skinning/06_conclusion.adoc[Conclusion] |
313 | | -** Physics Integration |
314 | | -*** xref:Advanced_glTF/Physics_Integration/01_introduction.adoc[Introduction] |
315 | | -*** xref:Advanced_glTF/Physics_Integration/02_bone_proxy_colliders.adoc[Bone proxy colliders] |
316 | | -*** xref:Advanced_glTF/Physics_Integration/03_constraints_and_joint_limits.adoc[Constraints & joint limits] |
317 | | -*** xref:Advanced_glTF/Physics_Integration/04_ragdoll_handoff.adoc[Ragdoll handoff] |
318 | | -*** xref:Advanced_glTF/Physics_Integration/05_self_collision_filtering.adoc[Self-collision filtering] |
319 | | -*** xref:Advanced_glTF/Physics_Integration/06_conclusion.adoc[Conclusion] |
320 | | -** Procedural Animation & IK |
321 | | -*** xref:Advanced_glTF/Procedural_Animation_IK/01_introduction.adoc[Introduction] |
322 | | -*** xref:Advanced_glTF/Procedural_Animation_IK/02_ccd_ik.adoc[CCD IK] |
323 | | -*** xref:Advanced_glTF/Procedural_Animation_IK/03_fabrik.adoc[FABRIK] |
324 | | -*** xref:Advanced_glTF/Procedural_Animation_IK/04_foot_placement.adoc[Foot placement] |
325 | | -*** xref:Advanced_glTF/Procedural_Animation_IK/05_look_at.adoc[Look-at] |
326 | | -*** xref:Advanced_glTF/Procedural_Animation_IK/06_physics_driven_lean.adoc[Physics-driven lean] |
327 | | -*** xref:Advanced_glTF/Procedural_Animation_IK/07_conclusion.adoc[Conclusion] |
328 | | -** Morph Targets & Facial Animation |
329 | | -*** xref:Advanced_glTF/Morph_Targets_Facial_Animation/01_introduction.adoc[Introduction] |
330 | | -*** xref:Advanced_glTF/Morph_Targets_Facial_Animation/02_shape_key_ingestion.adoc[Shape key ingestion] |
331 | | -*** xref:Advanced_glTF/Morph_Targets_Facial_Animation/03_bindless_morph_buffers.adoc[Bindless morph buffers] |
332 | | -*** xref:Advanced_glTF/Morph_Targets_Facial_Animation/04_conclusion.adoc[Conclusion] |
333 | | -** Tooling & Production Pipeline |
334 | | -*** xref:Advanced_glTF/Tooling_Production_Pipeline/01_introduction.adoc[Introduction] |
335 | | -*** xref:Advanced_glTF/Tooling_Production_Pipeline/02_blender_workflow.adoc[Blender workflow] |
336 | | -*** xref:Advanced_glTF/Tooling_Production_Pipeline/03_validation.adoc[Validation] |
337 | | -*** xref:Advanced_glTF/Tooling_Production_Pipeline/04_gltf_viewer_audit.adoc[glTF viewer audit] |
338 | | -*** xref:Advanced_glTF/Tooling_Production_Pipeline/05_conclusion.adoc[Conclusion] |
339 | | -** Debugging & Visual Auditing |
340 | | -*** xref:Advanced_glTF/Debugging_Visual_Auditing/01_introduction.adoc[Introduction] |
341 | | -*** xref:Advanced_glTF/Debugging_Visual_Auditing/02_debug_drawers.adoc[Debug drawers] |
342 | | -*** xref:Advanced_glTF/Debugging_Visual_Auditing/03_skinning_heatmaps.adoc[Skinning heatmaps] |
343 | | -*** xref:Advanced_glTF/Debugging_Visual_Auditing/04_renderdoc_analysis.adoc[RenderDoc analysis] |
344 | | -*** xref:Advanced_glTF/Debugging_Visual_Auditing/05_conclusion.adoc[Conclusion] |
345 | | -** xref:Advanced_glTF/appendix_types.adoc[Appendix: Common Types Reference] |
346 | | -
|
347 | 393 | * OpenXR and Vulkan 1.3 Spatial Computing |
348 | 394 | ** xref:OpenXR_Vulkan_Spatial_Computing/introduction.adoc[Introduction] |
349 | 395 | ** The OpenXR-Vulkan 1.3 Handshake |
|
444 | 490 | *** xref:OpenXR_Vulkan_Spatial_Computing/20_Spatial_Diagnostics_CI_CD/03_automated_qa.adoc[Automated QA] |
445 | 491 | *** xref:OpenXR_Vulkan_Spatial_Computing/20_Spatial_Diagnostics_CI_CD/04_incorporating_into_the_engine.adoc[Incorporating into the Engine] |
446 | 492 | ** xref:OpenXR_Vulkan_Spatial_Computing/conclusion.adoc[Conclusion] |
447 | | -* Synchronization 2 |
448 | | -** xref:Synchronization/introduction.adoc[Introduction] |
449 | | -** Anatomy of a Dependency |
450 | | -*** xref:Synchronization/Anatomy_of_a_Dependency/01_introduction.adoc[Introduction] |
451 | | -*** xref:Synchronization/Anatomy_of_a_Dependency/02_execution_vs_memory.adoc[Execution vs. Memory] |
452 | | -*** xref:Synchronization/Anatomy_of_a_Dependency/03_sync2_advantage.adoc[Sync 2 Advantage] |
453 | | -*** xref:Synchronization/Anatomy_of_a_Dependency/04_refined_pipeline_stages.adoc[Refined Pipeline Stages] |
454 | | -*** xref:Synchronization/Anatomy_of_a_Dependency/05_conclusion.adoc[Conclusion] |
455 | | -** Pipeline Barriers and Transitions |
456 | | -*** xref:Synchronization/Pipeline_Barriers_Transitions/01_introduction.adoc[Introduction] |
457 | | -*** xref:Synchronization/Pipeline_Barriers_Transitions/02_image_barrier.adoc[The Image Barrier] |
458 | | -*** xref:Synchronization/Pipeline_Barriers_Transitions/03_queue_family_ownership.adoc[Queue Family Ownership] |
459 | | -*** xref:Synchronization/Pipeline_Barriers_Transitions/04_global_vs_local_barriers.adoc[Global vs. Local Barriers] |
460 | | -** Timeline Semaphores |
461 | | -*** xref:Synchronization/Timeline_Semaphores/01_introduction.adoc[Introduction] |
462 | | -*** xref:Synchronization/Timeline_Semaphores/02_unifying_sync.adoc[Unifying Sync] |
463 | | -*** xref:Synchronization/Timeline_Semaphores/03_monotonic_counter.adoc[Monotonic Counter] |
464 | | -*** xref:Synchronization/Timeline_Semaphores/04_wait_before_signal.adoc[Wait Before Signal] |
465 | | -** Frame-in-Flight Architecture |
466 | | -*** xref:Synchronization/Frame_in_Flight/01_introduction.adoc[Introduction] |
467 | | -*** xref:Synchronization/Frame_in_Flight/02_managing_concurrent_frames.adoc[Managing Concurrent Frames] |
468 | | -*** xref:Synchronization/Frame_in_Flight/03_resource_lifetimes.adoc[Resource Lifetimes] |
469 | | -** Asynchronous Compute & Overlap |
470 | | -*** xref:Synchronization/Async_Compute_Overlap/01_introduction.adoc[Introduction] |
471 | | -*** xref:Synchronization/Async_Compute_Overlap/02_maximizing_throughput.adoc[Maximizing Throughput] |
472 | | -*** xref:Synchronization/Async_Compute_Overlap/03_async_post_processing.adoc[Async Post-processing] |
473 | | -*** xref:Synchronization/Async_Compute_Overlap/04_bubble_problem.adoc[The Bubble Problem] |
474 | | -** Transfer Queues & Asset Streaming Sync |
475 | | -*** xref:Synchronization/Transfer_Queues_Streaming/01_introduction.adoc[Introduction] |
476 | | -*** xref:Synchronization/Transfer_Queues_Streaming/02_non_blocking_uploads.adoc[Non-blocking Uploads] |
477 | | -*** xref:Synchronization/Transfer_Queues_Streaming/03_staging_sync.adoc[Staging Sync] |
478 | | -** Synchronization in Dynamic Rendering |
479 | | -*** xref:Synchronization/Dynamic_Rendering_Sync/01_introduction.adoc[Introduction] |
480 | | -*** xref:Synchronization/Dynamic_Rendering_Sync/02_subpass_replacement.adoc[Subpass Replacement] |
481 | | -*** xref:Synchronization/Dynamic_Rendering_Sync/03_local_read_sync.adoc[Local Read Sync] |
482 | | -** Host Image Copies & Memory Mapped Sync |
483 | | -*** xref:Synchronization/Host_Image_Copies_Memory_Sync/01_introduction.adoc[Introduction] |
484 | | -*** xref:Synchronization/Host_Image_Copies_Memory_Sync/02_cpu_to_image_access.adoc[CPU-to-Image Access] |
485 | | -*** xref:Synchronization/Host_Image_Copies_Memory_Sync/03_visibility_flushes.adoc[Visibility Flushes] |
486 | | -** Debugging with Synchronization Validation |
487 | | -*** xref:Synchronization/Synchronization_Validation/01_introduction.adoc[Introduction] |
488 | | -*** xref:Synchronization/Synchronization_Validation/02_validation_layer.adoc[Validation Layer] |
489 | | -*** xref:Synchronization/Synchronization_Validation/03_interpreting_vuids.adoc[Interpreting VUIDs] |
490 | | -** Profiling, Batching, and Optimization |
491 | | -*** xref:Synchronization/Profiling_Optimization/01_introduction.adoc[Introduction] |
492 | | -*** xref:Synchronization/Profiling_Optimization/02_barrier_batching.adoc[Barrier Batching] |
493 | | -*** xref:Synchronization/Profiling_Optimization/03_visualizing_stalls.adoc[Visualizing Stalls] |
| 493 | +
|
| 494 | +* xref:90_FAQ.adoc[FAQ] |
| 495 | +* link:https://github.com/KhronosGroup/Vulkan-Tutorial[GitHub Repository, window=_blank] |
0 commit comments