
Amazon Prime Free Trial
FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with FREE Delivery" below the Add to Cart button and confirm your Prime free trial.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited FREE Prime delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the author
OK
Learning Vulkan: Get introduced to the next generation graphics API-Vulkan
Purchase options and add-ons
Discover how to build impressive 3D graphics with the next-generation graphics API-Vulkan
Key Features:
- Get started with the Vulkan API and its programming techniques using the easy-to-follow examples to create stunning 3D graphics
- Understand memory management in Vulkan and implement image and buffer resources
- Get hands-on with the drawing process and synchronization, and render a 3D graphics scene with the Vulkan graphics pipeline
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.
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
Who this book is for
This book is ideal for graphic programmers who want to get up and running with Vulkan. It's also great for programmers who have experience with OpenGL and other graphic APIs who want to take advantage of next generation APIs. A good knowledge of C/C++ is expected.
- ISBN-101786469804
- ISBN-13978-1786469809
- PublisherPackt Publishing
- Publication dateDecember 15, 2016
- LanguageEnglish
- Dimensions7.5 x 0.94 x 9.25 inches
- Print length466 pages
Customers who viewed this item also viewed
Editorial Reviews
About the Author
He is a Vulkan, Metal and OpenGL ES trainer and has also authored OpenGL ES 3.0 Cookbook, Packt. His hobbies include traveling, light cooking, and spending quality time with his baby girl.
Product details
- Publisher : Packt Publishing (December 15, 2016)
- Language : English
- Paperback : 466 pages
- ISBN-10 : 1786469804
- ISBN-13 : 978-1786469809
- Item Weight : 1.76 pounds
- Dimensions : 7.5 x 0.94 x 9.25 inches
- Best Sellers Rank: #1,256,917 in Books (See Top 100 in Books)
- #877 in Game Programming
- #2,000 in Computer Graphics & Design
- #2,861 in Software Design, Testing & Engineering (Books)
- Customer Reviews:
About the author

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews right now. Please try again later.
- Reviewed in the United States on March 2, 2017Learning Vulkan by Parminder Singh is an excellent foray into the Vulkan graphics API and quite a competent book. The text is a reasonable 466 pages, and packs a lot in there. Singh covers all the basics of using Vulkan and goes into great detail at each step of the way. Not only is there actual C++ code shown (a lot of it), but he explains each API call and what objects to pass it, a breakdown of each object structure and what it does, what’s valid (or invalid) for data you can put in, and so forth. I have not read the official Vulkan Programming Guide yet (that’s coming next) so I’m not able to compare them here. However, this book is an absolute treasure trove of information, and presented with clear context, not just a copy and paste of API docs.
While the book is not particularly long, the author does manage to cover a good amount of ground. Of the topics included are: getting started with the LunarG SDK, initializing the API, debugging, command buffers and memory management, allocating image resources and the swapchain, buffers, render passes, framebuffers, working with SPIR-V shaders, pipelines and pipeline state management, descriptors and push constants, and finally drawing a textured polygon. I’m still getting acquainted with Vulkan myself, but this does seem to touch on all the fundamental topics to get started with the API. It really seems like Parminder Singh knows what he is talking about and feel I learned a lot finishing this text.
One thing to keep in mind, this is not really a book about graphics programming techniques, but rather a survey of the API. Meaning, unlike Frank Luna’s DirectX books, you won’t have any cool demos to showcase at the end. Through the whole book you’re basically just working with the initialization of the Vulkan API, though you do end up with a colored triangle and finally a textured cube. This is honestly fine, and just what is needed at this point in the life of Vulkan. Flashy demos are cool, sure, but once you have the fundamentals down, it shouldn’t be hard to apply that knowledge, or port techniques from other APIs.
I will note, however, that I wish there was more discussion into the performance cost or characteristics of parts of the Vulkan API. For example, sometimes there are multiple ways to perform an action (like with uniform buffers or push constants getting data into a shader) and there wasn’t much explanation as to when to do one thing over the other. This is not a huge concern, as there are lots of articles online covering these types of things and it seems the book is there to get you familiar with the concepts and data structures to allow you to do your own research later. Certainly, I still have a lot of questions but I can’t imagine a more thorough book as an introduction to this relatively new API.
Some familiarity with older graphics APIs will probably help, but I don’t think it’s absolutely needed. In my opinion, if you are wanting to learn graphics programming today, you might as well just jump into Vulkan (or DirectX12, if you prefer) as the industry will quickly adopt these new, lower-level APIs and you will be setting yourself up for the future. Do understand, though, that Vulkan is extremely verbose and needs something like 1,000 lines of code just to get a triangle on the screen. So stark beginners may be put off by that complexity. And you should definitely have good working knowledge of C++ before getting into this. With that in mind, however, I think that Learning Vulkan by Parminder Singh is a great place to start to delve into this exciting new world of Vulkan. Well worth reading.
- Reviewed in the United States on December 17, 2023The book was excellent until the reader reached chapters 8-11 (the last 3rd of the book) The last few chapters failed to compile do to depreciated instructions (information). No remedy is given.
I did not get around to reading/ using the book for months at which time, returning it is/was futile.
Thank you so much Amazon for selling books that are outdated and for that reason, worthless.
I request the purchase price be returned regardless of time lapsed.
- Reviewed in the United States on November 2, 2017The first mark were grammar errors. I know grammatical errors don't necessarily matter as much to a technical book but they do suggest an inferior product. The book was written in English but it is obvious a non-native speaker wrote this. I'm not a xenophobe but the publishers should have at least enough respect for the audience to correct this.
The examples and source code are useful, I guess. However, entire blocks of function calls are replaced with "...". I guess this is so the reader can refer to the complete code from their website but still continuity is great when I just want to read and learn and see what is going on.
In many cases the code is either down right wrong or very misleading because of the above paragraph. For example;
There was a function definition defined on page x with "..." replacements above and below the relevant code. on page x + 3, there is another function definition with totally different code. Code to me that was sufficiently different enough to suggest it was a completely new function. Is this the same function, because this is a compiler error? There's no context, so I can't use the book as a reference manual to build my play app and instead I'm forced to dig through their electronic code. It's overall a very poor experience.
Definitely NOT recommended. Especially for people less experienced in programming in general.
- Reviewed in the United States on January 2, 2017This the best book on Vulkan so far, in my opinion of course. I felt my understanding on Vulkan improving a lot reading this. (Before this I had the Vulkan Programming Guide that for some reason felt like barely an improvement over the public API documents).
It may help you too.
- Reviewed in the United States on May 25, 2017I would not recommend getting this book if you want to learn Vulkan. The author is constantly reminding you how his text is "short, precise, and full of practical implementations" while the actual text is clumsy, wordy, and full of distracting regionalisms if not outright grammatical errors. This book doesn't seem to have been carefully edited. The chapters are full of unnecessary repeats that confuse rather than clarify. I often found myself lost in a sea of Vulkan commands that just blurred together. The explanations were quite often just convoluted re-wordings of the command name. I recommend that until a decent book comes out stick to the regular old Vulkan documentation. I often find the official documentation for APIs to be terse and dense, but I think in this case you'll get to the information faster and understand it better.
For whatever reason, clumsy wording and convoluted language seems to be the norm for technical manuals. I have read a lot of technical manuals, many of which are quite poor, but this is on the short list of the worst of them. Your mileage may vary, but I found this book to be completely unusable.
- Reviewed in the United States on August 16, 2017Horrible waist of money. It is not better than the huge convoluted Vulkan documentation that you can get for free.
Don't buy it. I would like my money back if possible.
Get the cube example from Lunar SDK compile read it, and evolve upon it.
That is the way to go for now.
- Reviewed in the United States on June 6, 2017Too many mistakes and typos, did you guys even proofread it before releasing???
Top reviews from other countries
Cliente AmazonReviewed in Spain on June 2, 20205.0 out of 5 stars If you're looking to learn Vulkan this is a great starting point!
Perfect book to start to learn Vulkan.
Amazon CustomerReviewed in the United Kingdom on February 20, 20175.0 out of 5 stars A good book for beginners
A very good, informative and easy to approach book for a beginner. Just finished reading it and learnt a lot.
-
AlejandroReviewed in Spain on December 6, 20173.0 out of 5 stars Good for begginers
This book is good for beginners. Everything is properly explained (sometimes using a too much tiring pattern for simple details such as struct fields that after a couple of examples, the reader gets used to the "how it works").
The framework provided works perfectly, and lets the user read and study all functionalities.
In my opinion, global approach is the main lack of this book: it would help a lot to include good explanations and examples about how the main functionalities in Vulkan piece up together. Also, the last part (specially the shader related chapter) has explanations that could be improved.
I'd recommend this book to people trying to learn Vulkan, specially those with at least some knowledge about graphics programming.
anonReviewed in the United Kingdom on May 21, 20171.0 out of 5 stars Does not work on Linux
The way it is written makes it only work on Windows, so I can't follow along in GNU/Linux.

