Listing 1.1 Creating a Vulkan Instance
Listing 1.2 Querying Physical Device Properties
Listing 1.3 Creating a Logical Device
Listing 1.4 Querying Instance Layers
Listing 1.5 Querying Instance Extensions
Listing 2.1 Declaration of a Memory Allocator Class
Listing 2.2 Implementation of a Memory Allocator Class
Listing 2.3 Creating a Buffer Object
Listing 2.4 Creating an Image Object
Listing 2.5 Choosing a Memory Type for an Image
Listing 3.1 Example of Using vkCmdCopyBuffer()
Listing 4.1 Image Memory Barrier
Listing 4.2 Filling a Buffer with Floating-Point Data
Listing 5.1 Creating a Swap Chain
Listing 5.2 Transitioning an Image to Present Source
Listing 6.1 Simplest Possible GLSL Shader
Listing 6.3 Local Size Declaration in a Compute Shader (GLSL)
Listing 6.4 Local Size Declaration in a Compute Shader (SPIR-V)
Listing 6.5 Specialization Constants in GLSL
Listing 6.6 Specialization Constants in SPIR-V
Listing 6.7 Saving Pipeline Cache Data to a File
Listing 6.8 Declaring Resources in GLSL
Listing 6.9 Declaring Resources in SPIR-V
Listing 6.10 Creating a Pipeline Layout
Listing 6.11 Declaring Uniform and Shader Blocks in GLSL
Listing 6.12 Declaring Uniform and Shader Blocks in SPIR-V
Listing 6.13 Declaring Texel Buffers in GLSL
Listing 6.14 Declaring Texel Buffers in SPIR-V
Listing 6.15 Declaring Push Constants in GLSL
Listing 6.16 Declaring Push Constants in SPIR-V
Listing 7.1 Creating a Simple Renderpass
Listing 7.2 Creating a Simple Graphics Pipeline
Listing 7.3 Describing Vertex Input Data
Listing 7.4 Declaring Inputs to a Vertex Shader (GLSL)
Listing 7.5 Declaring Inputs to a Vertex Shader (SPIR-V)
Listing 8.1 Separate Vertex Attribute Setup
Listing 8.3 Using the Vertex Index in a Shader
Listing 8.4 Using the Instance Index in a Shader
Listing 8.5 Draw Index Used in a Shader
Listing 9.1 Trivial Tessellation Control Shader (GLSL)
Listing 9.2 Trivial Tessellation Control Shader (SPIR-V)
Listing 9.3 Declaring Outputs in Tessellation Control Shaders (GLSL)
Listing 9.4 Declaring Outputs in Tessellation Control Shaders (SPIR-V)
Listing 9.5 Accessing gl_TessCoord
in Evaluation Shader (GLSL)
Listing 9.6 Accessing gl_TessCoord
in Evaluation Shader (SPIR-V)
Listing 9.7 Descriptor Setup for Displacement Mapping
Listing 9.8 Vertex Shader for Displacement Mapping
Listing 9.9 Tessellation Control Shader for Displacement Mapping
Listing 9.10 Tessellation Evaluation Shader for Displacement Mapping
Listing 9.11 Tessellation State Creation Information
Listing 9.12 Minimal Geometry Shader (GLSL)
Listing 9.13 Minimal Geometry Shader (SPIR-V)
Listing 9.14 Declaring gl_PerVertex
in a GLSL Geometry Shader
Listing 9.15 Reading gl_PerVertex
in a SPIR-V Geometry Shader
Listing 9.16 Declaring an Output Block in GLSL
Listing 9.17 Pass-Through GLSL Geometry Shader
Listing 9.18 Pass-Through SPIR-V Geometry Shader
Listing 9.19 Cutting Strips in a Geometry Shader
Listing 9.20 Instanced GLSL Geometry Shader
Listing 9.21 Use of gl_PointSize
in GLSL
Listing 9.22 Decorating an Output with PointSize
Listing 9.23 Use of gl_ClipDistance
in GLSL
Listing 9.24 Decorating Outputs with ClipDistance
Listing 9.25 Use of gl_CullDistance
in GLSL
Listing 9.26 Decorating Outputs with CullDistance
Listing 9.27 Using Multiple Viewports in a Geometry Shader (GLSL)
Listing 10.1 Declaring an Output in a Fragment Shader (GLSL)
Listing 10.2 Declaring an Output in a Fragment Shader (SPIR-V)
Listing 10.3 Several Outputs in a Fragment Shader (GLSL)
Listing 10.4 Several Outputs in a Fragment Shader (SPIR-V)
Listing 11.1 Setup for Four-Fence Synchronization
Listing 11.2 Loop Waiting on Fences for Synchronization
Listing 11.3 Cross-Queue Submission with Semaphores
Listing 12.1 C Structure for All Pipeline Statistics
Listing 12.2 Moving a Buffer to Host-Readable State
3.144.144.248