Published by Addison-Wesley (November 7, 2016) © 2017
Graham Sellers | John KessenichThe Definitive Vulkan™ Developer’s Guide and Reference: Master the Next-Generation Specification for Cross-Platform Graphics
The next generation of the OpenGL specification, Vulkan, has been redesigned from the ground up, giving applications direct control over GPU acceleration for unprecedented performance and predictability. Vulkan™ Programming Guide is the essential, authoritative reference to this new standard for experienced graphics programmers in all Vulkan environments.
Vulkan API lead Graham Sellers (with contributions from language lead John Kessenich) presents example-rich introductions to the portable Vulkan API and the new SPIR-V shading language. The author introduces Vulkan, its goals, and the key concepts framing its API, and presents a complex rendering system that demonstrates both Vulkan’s uniqueness and its exceptional power.
You’ll find authoritative coverage of topics ranging from drawing to memory, and threading to compute shaders. The author especially shows how to handle tasks such as synchronization, scheduling, and memory management that are now the developer’s responsibility.
Vulkan™ Programming Guide introduces powerful 3D development techniques for fields ranging from video games to medical imaging, and state-of-the-art approaches to solving challenging scientific compute problems. Whether you’re upgrading from OpenGL or moving to open-standard graphics APIs for the first time, this guide will help you get the results and performance you’re looking for.
Coverage includes
- Extensively tested code examples to demonstrate Vulkan’s capabilities and show how it differs from OpenGL
- Expert guidance on getting started and working with Vulkan’s new memory system
- Thorough discussion of queues, commands, moving data, and presentation
- Full explanations of the SPIR-V binary shading language and compute/graphics pipelines
- Detailed discussions of drawing commands, geometry and fragment processing, synchronization primitives, and reading Vulkan data into applications
- A complete case study application: deferred rendering using complex multi-pass architecture and multiple processing queues
- Appendixes presenting Vulkan functions and SPIR-V opcodes, as well as a complete Vulkan glossary
-
Chapter 1: Overview of Vulkan
-
Chapter 2: Memory and Resources
-
Chapter 3: Queues and Commands
-
Chapter 4: Moving Data
-
Chapter 5: Presentation
-
Chapter 6: Shaders and Pipelines
-
Chapter 7: Graphics Pipelines
-
Chapter 8: Drawing
-
Chapter 9: Geometry Processing
-
Chapter 10: Fragment Processing
-
Chapter 11: Synchronization
-
Chapter 12: Getting Data Back
-
Chapter 13: Multipass Rendering
-
Appendix: Vulkan Functions
-
Glossary
-
Index