14#include "vulkan/vulkan.h"
23 VkMemoryAllocateInfo memAllocInfo {};
24 memAllocInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
36 VkCommandPool commandPool,
37 VkCommandBufferLevel level,
50 VkCommandPoolCreateInfo cmdPoolCreateInfo {};
51 cmdPoolCreateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
52 return cmdPoolCreateInfo;
57 VkCommandBufferBeginInfo cmdBufferBeginInfo {};
58 cmdBufferBeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
59 return cmdBufferBeginInfo;
64 VkCommandBufferInheritanceInfo cmdBufferInheritanceInfo {};
65 cmdBufferInheritanceInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
66 return cmdBufferInheritanceInfo;
164 submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
189 rect2D.extent.width = width;
190 rect2D.extent.height = height;
191 rect2D.offset.x = offsetX;
192 rect2D.offset.y = offsetY;
198 VkBufferCreateInfo bufCreateInfo {};
199 bufCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
200 return bufCreateInfo;
204 VkBufferUsageFlags usage,
207 VkBufferCreateInfo bufCreateInfo {};
208 bufCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
209 bufCreateInfo.usage = usage;
210 bufCreateInfo.size = size;
211 return bufCreateInfo;
215 uint32_t poolSizeCount,
216 VkDescriptorPoolSize* pPoolSizes,
219 VkDescriptorPoolCreateInfo descriptorPoolInfo {};
220 descriptorPoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
221 descriptorPoolInfo.poolSizeCount = poolSizeCount;
222 descriptorPoolInfo.pPoolSizes = pPoolSizes;
223 descriptorPoolInfo.maxSets = maxSets;
224 return descriptorPoolInfo;
228 const std::vector<VkDescriptorPoolSize>& poolSizes,
231 VkDescriptorPoolCreateInfo descriptorPoolInfo{};
232 descriptorPoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
233 descriptorPoolInfo.poolSizeCount =
static_cast<uint32_t
>(poolSizes.size());
234 descriptorPoolInfo.pPoolSizes = poolSizes.data();
235 descriptorPoolInfo.maxSets = maxSets;
236 return descriptorPoolInfo;
240 VkDescriptorType type,
241 uint32_t descriptorCount)
250 VkDescriptorType type,
251 VkShaderStageFlags stageFlags,
253 uint32_t descriptorCount = 1)
255 VkDescriptorSetLayoutBinding setLayoutBinding {};
256 setLayoutBinding.descriptorType = type;
257 setLayoutBinding.stageFlags = stageFlags;
258 setLayoutBinding.binding = binding;
259 setLayoutBinding.descriptorCount = descriptorCount;
260 return setLayoutBinding;
264 const VkDescriptorSetLayoutBinding* pBindings,
265 uint32_t bindingCount)
275 const std::vector<VkDescriptorSetLayoutBinding>& bindings)
285 const VkDescriptorSetLayout* pSetLayouts,
286 uint32_t setLayoutCount = 1)
296 uint32_t setLayoutCount = 1)
305 VkDescriptorPool descriptorPool,
306 const VkDescriptorSetLayout* pSetLayouts,
307 uint32_t descriptorSetCount)
317 inline VkDescriptorImageInfo
descriptorImageInfo(VkSampler sampler, VkImageView imageView, VkImageLayout imageLayout)
327 VkDescriptorSet dstSet,
328 VkDescriptorType type,
330 VkDescriptorBufferInfo* bufferInfo,
331 uint32_t descriptorCount = 1)
344 VkDescriptorSet dstSet,
345 VkDescriptorType type,
347 VkDescriptorImageInfo *imageInfo,
348 uint32_t descriptorCount = 1)
363 VkVertexInputRate inputRate)
365 VkVertexInputBindingDescription vInputBindDescription {};
366 vInputBindDescription.binding = binding;
367 vInputBindDescription.stride = stride;
368 vInputBindDescription.inputRate = inputRate;
369 return vInputBindDescription;
378 VkVertexInputAttributeDescription vInputAttribDescription {};
379 vInputAttribDescription.location = location;
380 vInputAttribDescription.binding = binding;
381 vInputAttribDescription.format = format;
382 vInputAttribDescription.offset = offset;
383 return vInputAttribDescription;
394 const std::vector<VkVertexInputBindingDescription> &vertexBindingDescriptions,
395 const std::vector<VkVertexInputAttributeDescription> &vertexAttributeDescriptions
408 VkPrimitiveTopology topology,
409 VkPipelineInputAssemblyStateCreateFlags flags,
410 VkBool32 primitiveRestartEnable)
421 VkPolygonMode polygonMode,
422 VkCullModeFlags cullMode,
423 VkFrontFace frontFace,
424 VkPipelineRasterizationStateCreateFlags flags = 0)
438 VkColorComponentFlags colorWriteMask,
439 VkBool32 blendEnable)
448 uint32_t attachmentCount,
449 const VkPipelineColorBlendAttachmentState * pAttachments)
459 VkBool32 depthTestEnable,
460 VkBool32 depthWriteEnable,
461 VkCompareOp depthCompareOp)
473 uint32_t viewportCount,
474 uint32_t scissorCount,
475 VkPipelineViewportStateCreateFlags flags = 0)
486 VkSampleCountFlagBits rasterizationSamples,
487 VkPipelineMultisampleStateCreateFlags flags = 0)
497 const VkDynamicState * pDynamicStates,
498 uint32_t dynamicStateCount,
499 VkPipelineDynamicStateCreateFlags flags = 0)
510 const std::vector<VkDynamicState>& pDynamicStates,
511 VkPipelineDynamicStateCreateFlags flags = 0)
530 VkPipelineLayout layout,
531 VkRenderPass renderPass,
532 VkPipelineCreateFlags flags = 0)
554 VkPipelineLayout layout,
555 VkPipelineCreateFlags flags = 0)
565 VkShaderStageFlags stageFlags,
594 inline VkSpecializationInfo
specializationInfo(uint32_t mapEntryCount,
const VkSpecializationMapEntry* mapEntries,
size_t dataSize,
const void* data)
605 inline VkSpecializationInfo
specializationInfo(
const std::vector<VkSpecializationMapEntry> &mapEntries,
size_t dataSize,
const void* data)
VkVertexInputAttributeDescription vertexInputAttributeDescription(uint32_t binding, uint32_t location, VkFormat format, uint32_t offset)
VkDescriptorSetLayoutBinding descriptorSetLayoutBinding(VkDescriptorType type, VkShaderStageFlags stageFlags, uint32_t binding, uint32_t descriptorCount=1)
VkComputePipelineCreateInfo computePipelineCreateInfo(VkPipelineLayout layout, VkPipelineCreateFlags flags=0)
VkPipelineColorBlendStateCreateInfo pipelineColorBlendStateCreateInfo(uint32_t attachmentCount, const VkPipelineColorBlendAttachmentState *pAttachments)
VkDescriptorSetLayoutCreateInfo descriptorSetLayoutCreateInfo(const VkDescriptorSetLayoutBinding *pBindings, uint32_t bindingCount)
VkPipelineViewportStateCreateInfo pipelineViewportStateCreateInfo(uint32_t viewportCount, uint32_t scissorCount, VkPipelineViewportStateCreateFlags flags=0)
VkEventCreateInfo eventCreateInfo()
VkDescriptorPoolSize descriptorPoolSize(VkDescriptorType type, uint32_t descriptorCount)
VkCommandPoolCreateInfo commandPoolCreateInfo()
VkAccelerationStructureGeometryKHR accelerationStructureGeometryKHR()
VkPipelineRasterizationStateCreateInfo pipelineRasterizationStateCreateInfo(VkPolygonMode polygonMode, VkCullModeFlags cullMode, VkFrontFace frontFace, VkPipelineRasterizationStateCreateFlags flags=0)
VkFramebufferCreateInfo framebufferCreateInfo()
VkDescriptorPoolCreateInfo descriptorPoolCreateInfo(uint32_t poolSizeCount, VkDescriptorPoolSize *pPoolSizes, uint32_t maxSets)
VkAccelerationStructureBuildSizesInfoKHR accelerationStructureBuildSizesInfoKHR()
VkPipelineDynamicStateCreateInfo pipelineDynamicStateCreateInfo(const VkDynamicState *pDynamicStates, uint32_t dynamicStateCount, VkPipelineDynamicStateCreateFlags flags=0)
VkRenderPassCreateInfo renderPassCreateInfo()
VkRayTracingShaderGroupCreateInfoKHR rayTracingShaderGroupCreateInfoKHR()
VkCommandBufferAllocateInfo commandBufferAllocateInfo(VkCommandPool commandPool, VkCommandBufferLevel level, uint32_t bufferCount)
VkSpecializationInfo specializationInfo(uint32_t mapEntryCount, const VkSpecializationMapEntry *mapEntries, size_t dataSize, const void *data)
Initialize a specialization constant info structure to pass to a shader stage.
VkVertexInputBindingDescription vertexInputBindingDescription(uint32_t binding, uint32_t stride, VkVertexInputRate inputRate)
VkAccelerationStructureBuildGeometryInfoKHR accelerationStructureBuildGeometryInfoKHR()
VkCommandBufferInheritanceInfo commandBufferInheritanceInfo()
VkImageMemoryBarrier imageMemoryBarrier()
Initialize an image memory barrier with no image transfer ownership.
VkBindSparseInfo bindSparseInfo()
VkPushConstantRange pushConstantRange(VkShaderStageFlags stageFlags, uint32_t size, uint32_t offset)
VkWriteDescriptorSet writeDescriptorSet(VkDescriptorSet dstSet, VkDescriptorType type, uint32_t binding, VkDescriptorBufferInfo *bufferInfo, uint32_t descriptorCount=1)
VkPipelineLayoutCreateInfo pipelineLayoutCreateInfo(const VkDescriptorSetLayout *pSetLayouts, uint32_t setLayoutCount=1)
VkPipelineColorBlendAttachmentState pipelineColorBlendAttachmentState(VkColorComponentFlags colorWriteMask, VkBool32 blendEnable)
VkGraphicsPipelineCreateInfo pipelineCreateInfo()
VkPipelineMultisampleStateCreateInfo pipelineMultisampleStateCreateInfo(VkSampleCountFlagBits rasterizationSamples, VkPipelineMultisampleStateCreateFlags flags=0)
VkGraphicsPipelineCreateInfo pipelineCreateInfo(VkPipelineLayout layout, VkRenderPass renderPass, VkPipelineCreateFlags flags=0)
VkDescriptorSetAllocateInfo descriptorSetAllocateInfo(VkDescriptorPool descriptorPool, const VkDescriptorSetLayout *pSetLayouts, uint32_t descriptorSetCount)
VkFenceCreateInfo fenceCreateInfo(VkFenceCreateFlags flags=0)
VkRenderPassBeginInfo renderPassBeginInfo()
VkSpecializationMapEntry specializationMapEntry(uint32_t constantID, uint32_t offset, size_t size)
Initialize a map entry for a shader specialization constant.
VkPipelineDepthStencilStateCreateInfo pipelineDepthStencilStateCreateInfo(VkBool32 depthTestEnable, VkBool32 depthWriteEnable, VkCompareOp depthCompareOp)
VkPipelineInputAssemblyStateCreateInfo pipelineInputAssemblyStateCreateInfo(VkPrimitiveTopology topology, VkPipelineInputAssemblyStateCreateFlags flags, VkBool32 primitiveRestartEnable)
VkMemoryAllocateInfo memoryAllocateInfo()
VkCommandBufferBeginInfo commandBufferBeginInfo()
VkImageCreateInfo imageCreateInfo()
VkSemaphoreCreateInfo semaphoreCreateInfo()
VkRect2D rect2D(int32_t width, int32_t height, int32_t offsetX, int32_t offsetY)
VkSamplerCreateInfo samplerCreateInfo()
VkImageViewCreateInfo imageViewCreateInfo()
VkPipelineVertexInputStateCreateInfo pipelineVertexInputStateCreateInfo()
VkBufferMemoryBarrier bufferMemoryBarrier()
Initialize a buffer memory barrier with no image transfer ownership.
VkPipelineTessellationStateCreateInfo pipelineTessellationStateCreateInfo(uint32_t patchControlPoints)
VkViewport viewport(float width, float height, float minDepth, float maxDepth)
VkRayTracingPipelineCreateInfoKHR rayTracingPipelineCreateInfoKHR()
VkMemoryBarrier memoryBarrier()
VkBufferCreateInfo bufferCreateInfo()
VkMappedMemoryRange mappedMemoryRange()
VkSubmitInfo submitInfo()
VkDescriptorImageInfo descriptorImageInfo(VkSampler sampler, VkImageView imageView, VkImageLayout imageLayout)
VkWriteDescriptorSetAccelerationStructureKHR writeDescriptorSetAccelerationStructureKHR()