# Jeremy Ong - How to Learn Vulkan (Highlights) ![rw-book-cover|256](https://readwise-assets.s3.amazonaws.com/static/images/article0.00998d930354.png) ## Metadata **Review**:: [readwise.io](https://readwise.io/bookreview/40135242) **Source**:: #from/readwise #from/reader **Zettel**:: #zettel/fleeting **Status**:: #x **Authors**:: [[Jeremy Ong]] **Full Title**:: How to Learn Vulkan **Category**:: #articles #readwise/articles **Category Icon**:: 📰 **URL**:: [www.jeremyong.com](https://www.jeremyong.com/c++/vulkan/graphics/rendering/2018/03/26/how-to-learn-vulkan/) **Host**:: [[www.jeremyong.com]] **Highlighted**:: [[2024-05-02]] **Created**:: [[2024-05-05]] ## Highlights - It is never to early to refer to the [spec](https://www.khronos.org/registry/vulkan/specs/1.1/html/vkspec.html). When you download the SDK, this is included in the `docs` folder so just bookmark it in your browser to access it quickly. ([View Highlight](https://read.readwise.io/read/01hwvgqmwd9vzaf687t8n9mwsb)) ^714077659 - [Trip through the graphics pipeline](https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index): An excellent must-read tour through the graphics pipeline ([View Highlight](https://read.readwise.io/read/01hwwnsy8c2846f72ysmdb1p1w)) ^714284715 - The graphics rendering pipeline chapter in [Real Time Rendering](http://www.realtimerendering.com) ([View Highlight](https://read.readwise.io/read/01hwvgrk38rbv2cfwcz8yg2pqa)) ^714077855 - Read [Vulkan in 30 minutes](https://renderdoc.org/vulkan-in-30-minutes.html) by baldurk (author of renderdoc, a must-have tool for gfx debugging) • Try to map the concepts mentioned in this article to your understanding of the graphics pipeline ([View Highlight](https://read.readwise.io/read/01hwvm6f26tp86ckyewmwtpnqg)) ^714094078 - [Vulkan Synchronization Primer](https://www.jeremyong.com/c++/graphics/gpu/vulkan/2018/11/22/vulkan-synchronization-primer.html): Self-authored short two-part primer for when you want to delve into the topic of Vulkan synchronization more ([View Highlight](https://read.readwise.io/read/01hwvm7d17zff77jr0tgmqfs1c)) ^714094116 <!-- New highlights added May 12, 2024 at 3:07 PM --> - Specifically, pay attention to the various layout options you have at your disposal. There are `location` specifiers (you’ll recognize the inputs to the vertex shader corresponding to vertex buffers and vertex attributes), the `binding` and `set` specifiers, and the `push_constant`. Also notice that some of these layout variables refer to arrays of data (aka 3 `noise_textures` samplers and 4 `uniform` buffer objects). ([View Highlight](https://read.readwise.io/read/01hxd8w5x8b2g0e17nzd6pgvv4)) ^717137531 - In general though, just imagine the GPU is a really fat thread that’s sharing memory with you and that you need to play nice (and stretching this one step further, the various graphics, transfer, and compute queues can be thought of as separate “threads” within the GPU). ([View Highlight](https://read.readwise.io/read/01hxd946w2cdz8ptt21kjfyx6j)) ^717138372