VkPhysicalDeviceSparseProperties sparseProperties;
} VkPhysicalDeviceProperties;
-typedef struct {
+typedef struct VkQueueFamilyProperties {
VkQueueFlags queueFlags;
uint32_t queueCount;
VkBool32 supportsTimestamps;
} VkQueueFamilyProperties;
-typedef struct {
+typedef struct VkMemoryType {
VkMemoryPropertyFlags propertyFlags;
uint32_t heapIndex;
} VkMemoryType;
-typedef struct {
+typedef struct VkMemoryHeap {
VkDeviceSize size;
VkMemoryHeapFlags flags;
} VkMemoryHeap;
-typedef struct {
+typedef struct VkPhysicalDeviceMemoryProperties {
uint32_t memoryTypeCount;
VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
uint32_t memoryHeapCount;
VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
} VkPhysicalDeviceMemoryProperties;
-typedef struct {
+typedef struct VkDeviceQueueCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t queueFamilyIndex;
uint32_t queueCount;
} VkDeviceQueueCreateInfo;
-typedef struct {
+typedef struct VkDeviceCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t queueRecordCount;
const VkPhysicalDeviceFeatures* pEnabledFeatures;
} VkDeviceCreateInfo;
-typedef struct {
+typedef struct VkExtensionProperties {
char extName[VK_MAX_EXTENSION_NAME];
uint32_t specVersion;
} VkExtensionProperties;
-typedef struct {
+typedef struct VkLayerProperties {
char layerName[VK_MAX_EXTENSION_NAME];
uint32_t specVersion;
uint32_t implVersion;
uint32_t memoryTypeIndex;
} VkMemoryAllocInfo;
-typedef struct {
+typedef struct VkMappedMemoryRange {
VkStructureType sType;
const void* pNext;
VkDeviceMemory mem;
VkDeviceSize size;
} VkMappedMemoryRange;
-typedef struct {
+typedef struct VkMemoryRequirements {
VkDeviceSize size;
VkDeviceSize alignment;
uint32_t memoryTypeBits;
} VkMemoryRequirements;
-typedef struct {
- VkImageAspect aspect;
+typedef struct VkSparseImageFormatProperties {
+ VkImageAspectFlags aspectMask;
VkExtent3D imageGranularity;
VkSparseImageFormatFlags flags;
} VkSparseImageFormatProperties;
-typedef struct {
- VkSparseImageFormatProperties formatProps;
- uint32_t imageMipTailStartLOD;
+typedef struct VkSparseImageMemoryRequirements {
+ VkSparseImageFormatProperties formatProperties;
+ uint32_t imageMipTailStartLod;
VkDeviceSize imageMipTailSize;
VkDeviceSize imageMipTailOffset;
VkDeviceSize imageMipTailStride;
} VkSparseImageMemoryRequirements;
-typedef struct {
- VkDeviceSize rangeOffset;
- VkDeviceSize rangeSize;
- VkDeviceSize memOffset;
- VkDeviceMemory mem;
+typedef struct VkSparseMemoryBind {
+ VkDeviceSize resourceOffset;
+ VkDeviceSize size;
+ VkDeviceMemory memory;
+ VkDeviceSize memoryOffset;
VkSparseMemoryBindFlags flags;
-} VkSparseMemoryBindInfo;
+} VkSparseMemoryBind;
-typedef struct {
+typedef struct VkSparseBufferMemoryBindInfo {
+ VkBuffer buffer;
+ uint32_t bindCount;
+ const VkSparseMemoryBind* pBinds;
+} VkSparseBufferMemoryBindInfo;
+
+typedef struct VkSparseImageOpaqueMemoryBindInfo {
+ VkImage image;
+ uint32_t bindCount;
+ const VkSparseMemoryBind* pBinds;
+} VkSparseImageOpaqueMemoryBindInfo;
+
+typedef struct VkImageSubresource {
VkImageAspect aspect;
uint32_t mipLevel;
uint32_t arrayLayer;
} VkImageSubresource;
-typedef struct {
+typedef struct VkOffset3D {
int32_t x;
int32_t y;
int32_t z;
} VkOffset3D;
-typedef struct {
+typedef struct VkSparseImageMemoryBind {
VkImageSubresource subresource;
VkOffset3D offset;
VkExtent3D extent;
- VkDeviceSize memOffset;
- VkDeviceMemory mem;
+ VkDeviceMemory memory;
+ VkDeviceSize memoryOffset;
VkSparseMemoryBindFlags flags;
+} VkSparseImageMemoryBind;
+
+typedef struct VkSparseImageMemoryBindInfo {
+ VkImage image;
+ uint32_t bindCount;
+ const VkSparseImageMemoryBind* pBinds;
} VkSparseImageMemoryBindInfo;
-typedef struct {
+typedef struct VkBindSparseInfo {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t waitSemaphoreCount;
+ const VkSemaphore* pWaitSemaphores;
+ uint32_t bufferBindCount;
+ const VkSparseBufferMemoryBindInfo* pBufferBinds;
+ uint32_t imageOpaqueBindCount;
+ const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
+ uint32_t imageBindCount;
+ const VkSparseImageMemoryBindInfo* pImageBinds;
+ uint32_t signalSemaphoreCount;
+ const VkSemaphore* pSignalSemaphores;
+} VkBindSparseInfo;
+
+typedef struct VkFenceCreateInfo {
VkStructureType sType;
const void* pNext;
VkFenceCreateFlags flags;
} VkFenceCreateInfo;
-typedef struct {
+typedef struct VkSemaphoreCreateInfo {
VkStructureType sType;
const void* pNext;
VkSemaphoreCreateFlags flags;
} VkSemaphoreCreateInfo;
-typedef struct {
+typedef struct VkEventCreateInfo {
VkStructureType sType;
const void* pNext;
VkEventCreateFlags flags;
} VkEventCreateInfo;
-typedef struct {
+typedef struct VkQueryPoolCreateInfo {
VkStructureType sType;
const void* pNext;
VkQueryType queryType;
VkQueryPipelineStatisticFlags pipelineStatistics;
} VkQueryPoolCreateInfo;
-typedef struct {
+typedef struct VkBufferCreateInfo {
VkStructureType sType;
const void* pNext;
VkDeviceSize size;
const uint32_t* pQueueFamilyIndices;
} VkBufferCreateInfo;
-typedef struct {
+typedef struct VkBufferViewCreateInfo {
VkStructureType sType;
const void* pNext;
VkBuffer buffer;
VkDeviceSize range;
} VkBufferViewCreateInfo;
-typedef struct {
+typedef struct VkImageCreateInfo {
VkStructureType sType;
const void* pNext;
VkImageType imageType;
VkImageLayout initialLayout;
} VkImageCreateInfo;
-typedef struct {
+typedef struct VkSubresourceLayout {
VkDeviceSize offset;
VkDeviceSize size;
VkDeviceSize rowPitch;
VkComponentSwizzle a;
} VkComponentMapping;
-typedef struct {
+typedef struct VkImageSubresourceRange {
VkImageAspectFlags aspectMask;
uint32_t baseMipLevel;
uint32_t mipLevels;
uint32_t arraySize;
} VkImageSubresourceRange;
-typedef struct {
+typedef struct VkImageViewCreateInfo {
VkStructureType sType;
const void* pNext;
VkImage image;
VkImageViewCreateFlags flags;
} VkImageViewCreateInfo;
-typedef struct {
+typedef struct VkShaderModuleCreateInfo {
VkStructureType sType;
const void* pNext;
size_t codeSize;
VkShaderStage stage;
} VkShaderCreateInfo;
-typedef struct {
+typedef struct VkPipelineCacheCreateInfo {
VkStructureType sType;
const void* pNext;
size_t initialSize;
size_t maxSize;
} VkPipelineCacheCreateInfo;
-typedef struct {
+typedef struct VkSpecializationMapEntry {
uint32_t constantId;
size_t size;
uint32_t offset;
} VkSpecializationMapEntry;
-typedef struct {
+typedef struct VkSpecializationInfo {
uint32_t mapEntryCount;
- const VkSpecializationMapEntry* pMap;
+ const VkSpecializationMapEntry* pMapEntries;
size_t dataSize;
const void* pData;
} VkSpecializationInfo;
-typedef struct {
+typedef struct VkPipelineShaderStageCreateInfo {
VkStructureType sType;
const void* pNext;
VkShaderStage stage;
const VkSpecializationInfo* pSpecializationInfo;
} VkPipelineShaderStageCreateInfo;
-typedef struct {
+typedef struct VkVertexInputBindingDescription {
uint32_t binding;
uint32_t strideInBytes;
VkVertexInputRate inputRate;
} VkVertexInputBindingDescription;
-typedef struct {
+typedef struct VkVertexInputAttributeDescription {
uint32_t location;
uint32_t binding;
VkFormat format;
uint32_t offsetInBytes;
} VkVertexInputAttributeDescription;
-typedef struct {
+typedef struct VkPipelineVertexInputStateCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t bindingCount;
const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
} VkPipelineVertexInputStateCreateInfo;
-typedef struct {
+typedef struct VkPipelineInputAssemblyStateCreateInfo {
VkStructureType sType;
const void* pNext;
VkPrimitiveTopology topology;
VkBool32 primitiveRestartEnable;
} VkPipelineInputAssemblyStateCreateInfo;
-typedef struct {
+typedef struct VkPipelineTessellationStateCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t patchControlPoints;
} VkPipelineTessellationStateCreateInfo;
-typedef struct {
+typedef struct VkViewport {
float originX;
float originY;
float width;
float maxDepth;
} VkViewport;
-typedef struct {
+typedef struct VkOffset2D {
int32_t x;
int32_t y;
} VkOffset2D;
-typedef struct {
+typedef struct VkExtent2D {
int32_t width;
int32_t height;
} VkExtent2D;
-typedef struct {
+typedef struct VkRect2D {
VkOffset2D offset;
VkExtent2D extent;
} VkRect2D;
-typedef struct {
+typedef struct VkPipelineViewportStateCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t viewportCount;
float lineWidth;
} VkPipelineRasterStateCreateInfo;
-typedef struct {
+typedef struct VkPipelineMultisampleStateCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t rasterSamples;
uint32_t reference;
} VkStencilOpState;
-typedef struct {
+typedef struct VkPipelineDepthStencilStateCreateInfo {
VkStructureType sType;
const void* pNext;
VkBool32 depthTestEnable;
float maxDepthBounds;
} VkPipelineDepthStencilStateCreateInfo;
-typedef struct {
+typedef struct VkPipelineColorBlendAttachmentState {
VkBool32 blendEnable;
VkBlendFactor srcColorBlendFactor;
VkBlendFactor dstColorBlendFactor;
VkChannelFlags channelWriteMask;
} VkPipelineColorBlendAttachmentState;
-typedef struct {
+typedef struct VkPipelineColorBlendStateCreateInfo {
VkStructureType sType;
const void* pNext;
VkBool32 alphaToCoverageEnable;
float blendConstants[4];
} VkPipelineColorBlendStateCreateInfo;
-typedef struct {
+typedef struct VkPipelineDynamicStateCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t dynamicStateCount;
const VkDynamicState* pDynamicStates;
} VkPipelineDynamicStateCreateInfo;
-typedef struct {
+typedef struct VkGraphicsPipelineCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t stageCount;
int32_t basePipelineIndex;
} VkGraphicsPipelineCreateInfo;
-typedef struct {
+typedef struct VkComputePipelineCreateInfo {
VkStructureType sType;
const void* pNext;
VkPipelineShaderStageCreateInfo stage;
int32_t basePipelineIndex;
} VkComputePipelineCreateInfo;
-typedef struct {
+typedef struct VkPushConstantRange {
VkShaderStageFlags stageFlags;
- uint32_t start;
- uint32_t length;
+ uint32_t offset;
+ uint32_t size;
} VkPushConstantRange;
-typedef struct {
+typedef struct VkPipelineLayoutCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t descriptorSetCount;
const VkPushConstantRange* pPushConstantRanges;
} VkPipelineLayoutCreateInfo;
-typedef struct {
+typedef struct VkSamplerCreateInfo {
VkStructureType sType;
const void* pNext;
VkFilter magFilter;
VkBool32 unnormalizedCoordinates;
} VkSamplerCreateInfo;
-typedef struct {
+typedef struct VkDescriptorSetLayoutBinding {
VkDescriptorType descriptorType;
uint32_t arraySize;
VkShaderStageFlags stageFlags;
const VkSampler* pImmutableSamplers;
} VkDescriptorSetLayoutBinding;
-typedef struct {
+typedef struct VkDescriptorSetLayoutCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t count;
uint32_t count;
} VkDescriptorTypeCount;
-typedef struct {
+typedef struct VkDescriptorPoolCreateInfo {
VkStructureType sType;
const void* pNext;
VkDescriptorPoolUsage poolUsage;
VkDescriptorBufferInfo bufferInfo;
} VkDescriptorInfo;
-typedef struct {
+typedef struct VkWriteDescriptorSet {
VkStructureType sType;
const void* pNext;
VkDescriptorSet destSet;
const VkDescriptorInfo* pDescriptors;
} VkWriteDescriptorSet;
-typedef struct {
+typedef struct VkCopyDescriptorSet {
VkStructureType sType;
const void* pNext;
VkDescriptorSet srcSet;
uint32_t count;
} VkCopyDescriptorSet;
-typedef struct {
+typedef struct VkFramebufferCreateInfo {
VkStructureType sType;
const void* pNext;
VkRenderPass renderPass;
uint32_t layers;
} VkFramebufferCreateInfo;
-typedef struct {
+typedef struct VkAttachmentDescription {
VkStructureType sType;
const void* pNext;
VkFormat format;
VkAttachmentDescriptionFlags flags;
} VkAttachmentDescription;
-typedef struct {
+typedef struct VkAttachmentReference {
uint32_t attachment;
VkImageLayout layout;
} VkAttachmentReference;
-typedef struct {
+typedef struct VkSubpassDescription {
VkStructureType sType;
const void* pNext;
VkPipelineBindPoint pipelineBindPoint;
const VkAttachmentReference* pPreserveAttachments;
} VkSubpassDescription;
-typedef struct {
+typedef struct VkSubpassDependency {
VkStructureType sType;
const void* pNext;
uint32_t srcSubpass;
VkBool32 byRegion;
} VkSubpassDependency;
-typedef struct {
+typedef struct VkRenderPassCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t attachmentCount;
const VkSubpassDependency* pDependencies;
} VkRenderPassCreateInfo;
-typedef struct {
+typedef struct VkCommandPoolCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t queueFamilyIndex;
VkCommandBufferCreateFlags flags;
} VkCommandBufferCreateInfo;
-typedef struct {
+typedef struct VkCommandBufferBeginInfo {
VkStructureType sType;
const void* pNext;
VkCommandBufferOptimizeFlags flags;
VkExtent3D extent;
} VkImageResolve;
-typedef struct {
+typedef struct VkRenderPassBeginInfo {
VkStructureType sType;
const void* pNext;
VkRenderPass renderPass;
const VkClearValue* pClearValues;
} VkRenderPassBeginInfo;
-typedef struct {
+typedef struct VkBufferMemoryBarrier {
VkStructureType sType;
const void* pNext;
VkMemoryOutputFlags outputMask;
uint32_t firstInstance;
} VkDrawIndirectCommand;
-typedef struct {
+typedef struct VkImageMemoryBarrier {
VkStructureType sType;
const void* pNext;
VkMemoryOutputFlags outputMask;
VkImageSubresourceRange subresourceRange;
} VkImageMemoryBarrier;
-typedef struct {
+typedef struct VkMemoryBarrier {
VkStructureType sType;
const void* pNext;
VkMemoryOutputFlags outputMask;
typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pNumRequirements, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pNumProperties, VkSparseImageFormatProperties* pProperties);
-typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparseBufferMemory)(VkQueue queue, VkBuffer buffer, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
-typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparseImageOpaqueMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
-typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparseImageMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseImageMemoryBindInfo* pBindInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, VkFence* pFence);
typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence);
typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
uint32_t* pNumProperties,
VkSparseImageFormatProperties* pProperties);
-VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparseBufferMemory(
- VkQueue queue,
- VkBuffer buffer,
- uint32_t numBindings,
- const VkSparseMemoryBindInfo* pBindInfo);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparseImageOpaqueMemory(
+VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
VkQueue queue,
- VkImage image,
- uint32_t numBindings,
- const VkSparseMemoryBindInfo* pBindInfo);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparseImageMemory(
- VkQueue queue,
- VkImage image,
- uint32_t numBindings,
- const VkSparseImageMemoryBindInfo* pBindInfo);
+ uint32_t bindInfoCount,
+ const VkBindSparseInfo* pBindInfo,
+ VkFence fence);
VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
VkDevice device,