You are previewing Vulkan Programming Guide: The Official Guide to Learning Vulkan.
O'Reilly logo
Vulkan Programming Guide: The Official Guide to Learning Vulkan

Book Description

This is the Rough Cut version of the printed book.

The next generation specification of OpenGL, 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 graphics programmers at all levels of experience, in any Vulkan environment, on any platform.

Written by Vulkan API lead Graham Sellers, with contributions from Vulkan language lead John Kessenich, this guide offers comprehensive, example-rich introductions to both the new portable Vulkan API and the new SPIR-V shading language. Sellers and Kessenich cover everything from drawing to memory, threading to compute shaders. Throughout, they present realistic sample code and explain everything you need to know and do to get it to work.

You'll learn powerful techniques you can use for 3D application development in fields ranging from video games to medical imaging--as well as techniques for solving many of today's most 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.

Table of Contents

  1. Contents
  2. About This Book
    1. About the Sample Code
    2. Errata
  3. Chapter 1. Overview of Vulkan
    1. Introduction
    2. Instances, Devices, and Queues
    3. Object Types and Function Conventions
    4. Managing Memory
    5. Multi-Threading in Vulkan
    6. Mathematical Concepts
    7. Enhancing Vulkan
    8. Shutting Down Cleanly
    9. Summary
  4. Chapter 2. Memory and Resources
    1. Host Memory Management
    2. Resources
    3. Device Memory Management
    4. Summary
  5. Chapter 3. Queues and Commands
    1. Device Queues
    2. Creating Command Buffers
    3. Recording Commands
    4. Submission of Commands
    5. Summary
  6. Chapter 4. Moving Data
    1. Managing Resource State
    2. Clearing and Filling Buffers
    3. Clearing and Filling Images
    4. Copying Image Data
    5. Stretching Images
    6. Summary
  7. Chapter 5. Presentation
    1. Presentation Extension
    2. Presentation Surfaces
    3. Swap Chains
    4. Full Screen Surfaces
    5. Performing Presentation
    6. Cleaning Up
    7. Summary
  8. Chapter 6. Shaders and Pipelines
    1. An Overview of GLSL
    2. An Overview of SPIR-V
    3. Pipelines
    4. Executing Work
    5. Resource Access in Shaders
    6. Summary
  9. Chapter 7. Graphics Pipelines
    1. The Logical Graphics Pipeline
    2. Render Passes
    3. The Framebuffer
    4. Creating a Simple Graphics Pipeline
    5. Dynamic State
    6. Summary
  10. Chapter 8. Drawing
    1. Getting Ready to Draw
    2. Vertex Data
    3. Indexed Draws
    4. Instancing
    5. Indirect Draws
    6. Summary
  11. Chapter 9. Geometry Processing
    1. Tessellation
    2. Geometry Shaders
    3. Programmable Point Size
    4. Line Width and Rasterization
    5. User Clipping and Culling
    6. The Viewport Transformation
    7. Summary
  12. Chapter 10. Fragment Processing
    1. Scissor Testing
    2. Depth and Stencil Operations
    3. Multisample Rendering
    4. Logic Operations
    5. Fragment Shader Outputs
    6. Color Blending
    7. Summary
  13. Chapter 11. Synchronization
    1. Fences
    2. Events
    3. Semaphores
    4. Summary
  14. Chapter 12. Getting Data Back
    1. Queries
    2. Reading Data with the Host
    3. Summary
  15. Chapter 13. Multi-Pass Rendering
    1. Input Attachments
    2. Attachment Contents
    3. Secondary Command Buffers
    4. Summary
  16. Appendix A. Vulkan Functions
    1. Command Buffer Building Functions
  17. Glossary