Uploaded by 김지온

vulkan summary

advertisement

5. Instance

Creating an instance

VkApplicationInfo

Create Instance (VkInstanceCreateInfo, vkCreateInstance() )

Checking for extension support vkEnumerateInstanceExtensionProperties() (VkExtensionProperties)

: Return number of global extension properties

Cleaning up vkDestroyInstance()

6. Validation layers

Using validation layers vkEnumerateInstanceLayerProperties() (VkLayerProperties)

: Return requested number of global layer properties

Message callback

( glfwGetRequiredInstanceExtensions() )

(VkInstanceCreateInfo)

VkDebugReportCallbackCreateInfoEXT

( PFN_vkCreateDebugReportCallbackEXT() )

( PFN_vkDestroyDebugReportCallbackEXT() )

7. Physical devices and queue families

Selecting a physical device

VkPhysicalDevice vkEnumeratePhysicalDevices()

: Enumerate physical devices accessible to Vulkan instance

Base device suitability checks

VkPhysicalDeviceProperties vkGetPhysicalDeviceProperties()

VkPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures()

Queue families

VkQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties()

8. Logical device and queues

Specifying the queues to be created

VkDeviceQueueCreateInfo

Specifying used device features

VkPhysicalDeviceFeatures

Creating the logical device

VkDeviceCreateInfo

vkCreateDevice() vkDestroyDevice()

Retrieving queue handles

VkQueue vkGetDeviceQueue()

9. Window surface

Window surface creation

VkWin32SurfaceCreateInfoKHR (VkSurfaceKHR)

( PFN_vkCreateWin32SurfaceKHR() )

( glfwCreateWindowSurface() ) vkDestroySurfaceKHR()

Querying for presentation support vkGetPhysicalDeviceSurfaceSupportKHR()

Creating the presentation queue

(VkDeviceQueueCreateInfo)

( vkGetDeviceQueue() )

10. Swap chain

Checking for swap chain support

VkExtensionProperties

VkEnumerateDeviceExtensionProperties()

: Return properties of available physical device extensions

(VkInstanceCreateInfo)

Querying details of swap chain support

VkSurfaceCapabilitiesKHR

VkSurfaceFormatKHR

VkPresentModeKHR vkGetPhysicalDeviceSurfaceCapabilities() vkGetPhysicalDeviceSurfaceFormatsKHR() vkGetPhysicalDeviceSurfacePresentModesKHR()

Choosing the right settings for the swap chain

Surface format

Presentation mode

Swap extent

Creating the swap chain

VkSwapchainCreateInfoKHR vkCreateSwapchainKHR() vkDestroySwapchainKHR()

Retrieving the swap chain images

VkImage

vkGetSwapchainImagesKHR()

11. Image views

VkImageViewCreateInfo vkCreateImageView() vkDestroyImageView()

12. Introduction

13. Shader modules

Vertex shader

Fragment shader

Per-vertex colors

Compiling the shaders

Loading a shader

Creating shader modules

VkShaderModuleCreateInfo vkCreateShaderModule() vkDestroyShaderModule()

Shader stage creation

VkPipelineShaderStageCreateInfo

14. Fixed functions

Vertex input

VkPipelineVertexInputStateCreateInfo

Input assembly

VkPipelineInputAssemblyStateCreateInfo

Viewports and scissors

VkViewport

VkPipelineViewportStateCreateInfo

Raterizer

VkPipelineRasterizationStateCreateInfo

Multisampling

VkPipelineMultisampleStateCreateInfo

Depth and stencil testing

Color blending

VkPipelineColorBlendAttachmentState

VkPipelineColorBlendStateCreateInfo

Dynamic state

VkPipelineDynamicStateCreateInfo

Pipeline layout

VkPipelineLayoutCreateInfo vkCreatePipelineLayout()

vkDestroyPipelineLayout()

15. Render passes

Attachment description

VkAttachmentDescription

Subpasses and attachment reference

VkAttachmentReference

VkSubpassDescription

Render pass

VkRederPassCreateInfo vkCreateRenderPass() vkDestroyRenderPass()

16. Graphics pipeline aggragation

VkGraphicsPipelineCreateInfo vkCreateGraphicsPipelines() vkDestroyPipeline()

17. Framebuffers

VkFramebufferInfo vkCreateFramebuffer() vkDestroyFramebuffer()

18. Command buffers

Command pools

VkCommandPoolCreateInfo vkCreateCommandPool() vkDestroyCommandPool()

Command buffer allocation

VkCommandBufferAllocateInfo vkAllocateCommandBuffers()

Starting command buffer recording

VkCommandBufferBeginInfo vkBeginCommandBuffer()

Starting a render pass

VkRenderPassBeginInfo vkCmdBeginRenderPass()

Basic drawing commands vkCmdBindPipeline() vkCmdDraw()

Finishing up vkCmdEndRenderPass() vkEndCommandBuffer()

19. Rendering and presentation

Semaphores

VkSemaphoreCreateInfo vkCreateSemaphore() vkDestroySemaphore()

Acquiring an image from the swap chain vkAcquireNextImageKHR()

Submitting the command buffer

VkSubmitInfo vkQueueSubmit()

Subpass dependencies

VkSubpassDependency

(VkRenderPassCreateInfo)

Presentation

VkPresentInfoKHR vkQueuePresentKHR() vkDeviceWaitIdle()

20. Swap chain recreation

Recreating the swap chain

Window resizing

( glfwSetWindowUserPointer() )

( glfwSetWindowSizeCallback() )

21. Vertex input description

Binding descriptions

VkVertexInputBindingDescription

Attribute description

VkVertexInputAttributeDescription

Pipeline vertex input

(VkPipelineVertexInputStateCreateInfo)

22. Vertex buffer creation

Buffer creation

VkBufferCreateInfo vkCreateBuffer() vkDestroyBuffer()

Memory requirements vkGetBufferMemoryRequirements() vkGetPhysicalDeviceMemoryProperties()

Memory allocation

VkMemoryAllocateInfo

vkAllocateMemory() vkBindBufferMemory() vkFreeMemory()

Filling the vertex buffer vkMapMemory() vkUnmapMemory()

Binding the vertex buffer vkCmdBindVertexBuffers()

23. Staging buffer

Transfer queue

Abstracting buffer creation

Using a staging buffer (Copy buffer)

VkBufferCopy vkCmdCopyBuffer() vkFreeCommandBuffers()

24. Index buffer vkCmdBindIndexBuffer() vkCmdDrawIndexed()

25. Descriptor layout and buffer (Uniform buffer)

Descriptor set layout

VkDescriptorSetLayoutBinding

VkDescriptorSetLayoutCreateInfo vkCreateDescriptorSetLayout()

(kPipelineLayoutCreateInfo) vkDestroyDescriptorSetLayout()

Uniform buffer

VkDeviceSize

Updating uniform data

UniformBufferObject

26. Descriptor pool and sets

Descriptor pool

VkDescriptorPoolCreateInfo vkCreateDescriptorPool() vkDestroyDescriptorPool()

Descriptor set

VkDescriptorSetAllocateInfo vkAllocateDescriptorSets() vkDescriptorBufferInfo

VkWriteDescriptoSet

vkUpdateDescriptorSets()

Using a descriptor set

(VkPipelineRasterizationStateCreateInfo)

Download