Learning Vulkan

Discover how to build impressive 3D graphics with the next-generation graphics API—Vulkan
Preview in Mapt

Learning Vulkan

Parminder Singh

1 customer reviews
Discover how to build impressive 3D graphics with the next-generation graphics API—Vulkan
Mapt Subscription
FREE
$29.99/m after trial
eBook
$30.80
RRP $43.99
Save 29%
Print + eBook
$54.99
RRP $54.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$30.80
$54.99
$29.99p/m after trial
RRP $43.99
RRP $54.99
Subscription
eBook
Print + eBook
Start 30 Day Trial

Frequently bought together


Learning Vulkan Book Cover
Learning Vulkan
$ 43.99
$ 30.80
Vulkan Cookbook Book Cover
Vulkan Cookbook
$ 39.99
$ 28.00
Buy 2 for $35.00
Save $48.98
Add to Cart
Subscribe and access every Packt eBook & Video.
 
  • 5,000+ eBooks & Videos
  • 50+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 

Book Details

ISBN 139781786469809
Paperback466 pages

Book Description

Vulkan, the next generation graphics and compute API, is the latest offering by Khronos. This API is the successor of OpenGL and unlike OpenGL, it offers great flexibility and high performance capabilities to control modern GPU devices. With this book, you'll get great insights into the workings of Vulkan and how you can make stunning graphics run with minimum hardware requirements.

We begin with a brief introduction to the Vulkan system and show you its distinct features with the successor to the OpenGL API. First, you will see how to establish a connection with hardware devices to query the available queues, memory types, and capabilities offered. Vulkan is verbose, so before diving deep into programing, you’ll get to grips with debugging techniques so even first-timers can overcome error traps using Vulkan’s layer and extension features.

You’ll get a grip on command buffers and acquire the knowledge to record various operation commands into command buffer and submit it to a proper queue for GPU processing. We’ll take a detailed look at memory management and demonstrate the use of buffer and image resources to create drawing textures and image views for the presentation engine and vertex buffers to store geometry information.

You'll get a brief overview of SPIR-V, the new way to manage shaders, and you'll define the drawing operations as a single unit of work in the Render pass with the help of attachments and subpasses. You'll also create frame buffers and build a solid graphics pipeline, as well as making use of the synchronizing mechanism to manage GPU and CPU hand-shaking.

By the end, you’ll know everything you need to know to get your hands dirty with the coolest Graphics API on the block.

Table of Contents

Chapter 1: Getting Started with the NextGen 3D Graphics API
Vulkan and its evolution
Vulkan versus OpenGL
Important jargons before we get started
Learning the fundamentals of Vulkan
Understanding the Vulkan application
Getting started with the Vulkan programming model
Summary
Chapter 2: Your First Vulkan Pseudo Program
Installing Vulkan
The Hello World!!! pseudocode
Fitting it all together
Summary
Chapter 3: Shaking Hands with the Device
Getting started with the LunarG SDK
Setting up our first project with CMake
Introduction to extensions
Creating a Vulkan instance
Understanding physical and logical devices
Understanding queues and queue families
Implementing devices and queues all together
Summary
Chapter 4: Debugging in Vulkan
Peeking into Vulkan debugging
Understanding LunarG validation layers and their features
Implementing debugging in Vulkan
Summary
Chapter 5: Command Buffer and Memory Management in Vulkan
Getting started with command buffers
Understanding command pool and buffer APIs
Recording command buffers
Implementing the wrapper class for a command buffer
Managing memory in Vulkan
Summary
Chapter 6: Allocating Image Resources and Building a Swapchain with WSI
Getting started with image resources
Understanding image resources
Memory allocation and binding image resources
Introducing swapchains
Creating a depth image
Summarizing the application flow
Summary
Chapter 7: Buffer Resource, Render Pass, Framebuffer, and Shaders with SPIR-V
Understanding the Vulkan buffer resource type
Creating geometry with a buffer resource
Understanding a Render Pass
Using the Render Pass and creating the framebuffer
Clearing the background color
Working with a shader in Vulkan
Summary
Chapter 8: Pipelines and Pipeline State Management
Getting started with pipelines
Caching pipeline objects with a PCO
Creating a graphics pipeline
Understanding compute pipelines
Pipeline State Objects (PSO) in Vulkan
Implementing the pipeline
Summary
Chapter 9: Drawing Objects
Overview of the drawing process in Vulkan
Preparing the drawing object
Rendering the drawing object
Rendering an indexed geometry
Understanding synchronization primitives in Vulkan
Resizing the display window
Summary
Chapter 10: Descriptors and Push Constant
Understanding the concept of descriptors
How to implement Uniforms in Vulkan?
Push constant updates
Summary
Chapter 11: Drawing Textures
Image resource - a quick recap
Prerequisites for texture drawing
Implementing the image resource with linear tiling
Implementing the image resource with optimal tiling
Copying data content between images and buffers
Updating the descriptor set
Summary

What You Will Learn

  • Learn fundamentals of Vulkan programing model to harness the power of modern GPU devices.
  • Implement device, command buffer and queues to get connected with the physical hardware.
  • Explore various validation layers and learn how to use it for debugging Vulkan application.
  • Get a grip on memory management to control host and device memory operations.
  • Understand and implement buffer and image resource types in Vulkan.
  • Define drawing operations in the Render pass and implement graphics pipeline.
  • Manage GLSL shader using SPIR-V and update the shader resources with descriptor sets and push constants.
  • Learn the drawing process, manage resources with synchronization objects and render 3D scene output on screen with Swapchain.
  • Bring realism to your rendered 3D scene with textures, and implement linear and optimal textures

Authors

Table of Contents

Chapter 1: Getting Started with the NextGen 3D Graphics API
Vulkan and its evolution
Vulkan versus OpenGL
Important jargons before we get started
Learning the fundamentals of Vulkan
Understanding the Vulkan application
Getting started with the Vulkan programming model
Summary
Chapter 2: Your First Vulkan Pseudo Program
Installing Vulkan
The Hello World!!! pseudocode
Fitting it all together
Summary
Chapter 3: Shaking Hands with the Device
Getting started with the LunarG SDK
Setting up our first project with CMake
Introduction to extensions
Creating a Vulkan instance
Understanding physical and logical devices
Understanding queues and queue families
Implementing devices and queues all together
Summary
Chapter 4: Debugging in Vulkan
Peeking into Vulkan debugging
Understanding LunarG validation layers and their features
Implementing debugging in Vulkan
Summary
Chapter 5: Command Buffer and Memory Management in Vulkan
Getting started with command buffers
Understanding command pool and buffer APIs
Recording command buffers
Implementing the wrapper class for a command buffer
Managing memory in Vulkan
Summary
Chapter 6: Allocating Image Resources and Building a Swapchain with WSI
Getting started with image resources
Understanding image resources
Memory allocation and binding image resources
Introducing swapchains
Creating a depth image
Summarizing the application flow
Summary
Chapter 7: Buffer Resource, Render Pass, Framebuffer, and Shaders with SPIR-V
Understanding the Vulkan buffer resource type
Creating geometry with a buffer resource
Understanding a Render Pass
Using the Render Pass and creating the framebuffer
Clearing the background color
Working with a shader in Vulkan
Summary
Chapter 8: Pipelines and Pipeline State Management
Getting started with pipelines
Caching pipeline objects with a PCO
Creating a graphics pipeline
Understanding compute pipelines
Pipeline State Objects (PSO) in Vulkan
Implementing the pipeline
Summary
Chapter 9: Drawing Objects
Overview of the drawing process in Vulkan
Preparing the drawing object
Rendering the drawing object
Rendering an indexed geometry
Understanding synchronization primitives in Vulkan
Resizing the display window
Summary
Chapter 10: Descriptors and Push Constant
Understanding the concept of descriptors
How to implement Uniforms in Vulkan?
Push constant updates
Summary
Chapter 11: Drawing Textures
Image resource - a quick recap
Prerequisites for texture drawing
Implementing the image resource with linear tiling
Implementing the image resource with optimal tiling
Copying data content between images and buffers
Updating the descriptor set
Summary

Book Details

ISBN 139781786469809
Paperback466 pages
Read More
From 1 reviews

Read More Reviews

Recommended for You

OpenGL Development Cookbook Book Cover
OpenGL Development Cookbook
$ 29.99
$ 21.00
OpenGL 4 Shading Language Cookbook, Second Edition Book Cover
OpenGL 4 Shading Language Cookbook, Second Edition
$ 32.99
$ 23.10
Learning Game Physics with Bullet Physics and OpenGL Book Cover
Learning Game Physics with Bullet Physics and OpenGL
$ 17.99
$ 12.60
Python Machine Learning Book Cover
Python Machine Learning
$ 35.99
$ 25.20
Boost C++ Application Development Cookbook Book Cover
Boost C++ Application Development Cookbook
$ 29.99
$ 21.00
OpenGL Game Development By Example Book Cover
OpenGL Game Development By Example
$ 47.99
$ 33.60