Working with Modern Vulkan
The goal of this chapter is to show you how to render a scene that accepts input information, such as textures and uniform data, from the application side. This chapter will cover advanced topics in the Vulkan API that build upon the core concepts discussed in the previous chapter and present all the information you need to render complex scenes, along with newer features of the API. Additionally, the chapter will demonstrate techniques to enhance the rendering speed.
In this chapter, we’re going to cover the following recipes:
- Understanding Vulkan’s memory model
- Instantiating the VMA library
- Creating buffers
- Uploading data to buffers
- Creating a staging buffer
- How to avoid data races using ring buffers
- Setting up pipeline barriers
- Creating images (textures)
- Creating an image view
- Creating a sampler
- Providing shader data
- Customizing shader behavior with specialization constants
- Implementing MDI and PVP
- Adding flexibility to the rendering pipeline using dynamic rendering
- Transferring resources between queue families