aboutsummaryrefslogtreecommitdiff
path: root/include/vulkan.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/vulkan.h')
-rw-r--r--include/vulkan.h194
1 files changed, 93 insertions, 101 deletions
diff --git a/include/vulkan.h b/include/vulkan.h
index 38339984..d288e4a5 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -132,60 +132,57 @@ typedef enum {
typedef enum {
VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
- VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 1,
- VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO = 2,
- VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 3,
- VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 4,
- VK_STRUCTURE_TYPE_SHADER_CREATE_INFO = 5,
- VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 6,
- VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 7,
- VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 8,
- VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO = 9,
+ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
+ VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
+ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
+ VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
+ VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO = 5,
+ VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
+ VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
+ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
+ VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
- VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 11,
- VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 12,
- VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 13,
- VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 14,
- VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 15,
- VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 16,
- VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 17,
- VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 18,
- VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 19,
- VK_STRUCTURE_TYPE_PIPELINE_RASTER_STATE_CREATE_INFO = 20,
- VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 21,
- VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 22,
- VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 23,
- VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 24,
- VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 25,
- VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 26,
- VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 27,
- VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO = 28,
- VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 29,
- VK_STRUCTURE_TYPE_MEMORY_BARRIER = 30,
- VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 31,
- VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 32,
- VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
- VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 34,
- VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 35,
- VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 36,
- VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 37,
- VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 38,
- VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 39,
- VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION = 40,
- VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION = 41,
- VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY = 42,
+ VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
+ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
+ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
+ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
+ VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
+ VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
+ VK_STRUCTURE_TYPE_SHADER_CREATE_INFO = 17,
+ VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 18,
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 19,
+ VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 20,
+ VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 21,
+ VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 22,
+ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 23,
+ VK_STRUCTURE_TYPE_PIPELINE_RASTER_STATE_CREATE_INFO = 24,
+ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 25,
+ VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 26,
+ VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 27,
+ VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 28,
+ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 29,
+ VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 30,
+ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 31,
+ VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 32,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 33,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 34,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 35,
+ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 36,
+ VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 37,
+ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 38,
+ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 39,
+ VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO = 40,
+ VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO = 41,
+ VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO = 42,
VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
- VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO = 44,
- VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 45,
- VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 46,
- VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 47,
- VK_STRUCTURE_TYPE_SUBMIT_INFO = 48,
- VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 49,
- VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 50,
- VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 51,
+ VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
+ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
+ VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
+ VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 47,
+ VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 48,
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
- VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
- VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_BIND_SPARSE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
+ VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO,
+ VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
} VkStructureType;
@@ -401,11 +398,11 @@ typedef enum {
} VkImageType;
typedef enum {
- VK_IMAGE_TILING_LINEAR = 0,
- VK_IMAGE_TILING_OPTIMAL = 1,
- VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_LINEAR,
- VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_OPTIMAL,
- VK_IMAGE_TILING_NUM = (VK_IMAGE_TILING_OPTIMAL - VK_IMAGE_TILING_LINEAR + 1),
+ VK_IMAGE_TILING_OPTIMAL = 0,
+ VK_IMAGE_TILING_LINEAR = 1,
+ VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
+ VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
+ VK_IMAGE_TILING_NUM = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
} VkImageTiling;
@@ -471,15 +468,16 @@ typedef enum {
} VkImageViewType;
typedef enum {
- VK_CHANNEL_SWIZZLE_ZERO = 0,
- VK_CHANNEL_SWIZZLE_ONE = 1,
- VK_CHANNEL_SWIZZLE_R = 2,
- VK_CHANNEL_SWIZZLE_G = 3,
- VK_CHANNEL_SWIZZLE_B = 4,
- VK_CHANNEL_SWIZZLE_A = 5,
- VK_CHANNEL_SWIZZLE_BEGIN_RANGE = VK_CHANNEL_SWIZZLE_ZERO,
+ VK_CHANNEL_SWIZZLE_IDENTITY = 0,
+ VK_CHANNEL_SWIZZLE_ZERO = 1,
+ VK_CHANNEL_SWIZZLE_ONE = 2,
+ VK_CHANNEL_SWIZZLE_R = 3,
+ VK_CHANNEL_SWIZZLE_G = 4,
+ VK_CHANNEL_SWIZZLE_B = 5,
+ VK_CHANNEL_SWIZZLE_A = 6,
+ VK_CHANNEL_SWIZZLE_BEGIN_RANGE = VK_CHANNEL_SWIZZLE_IDENTITY,
VK_CHANNEL_SWIZZLE_END_RANGE = VK_CHANNEL_SWIZZLE_A,
- VK_CHANNEL_SWIZZLE_NUM = (VK_CHANNEL_SWIZZLE_A - VK_CHANNEL_SWIZZLE_ZERO + 1),
+ VK_CHANNEL_SWIZZLE_NUM = (VK_CHANNEL_SWIZZLE_A - VK_CHANNEL_SWIZZLE_IDENTITY + 1),
VK_CHANNEL_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
} VkChannelSwizzle;
@@ -511,27 +509,16 @@ typedef enum {
} VkPrimitiveTopology;
typedef enum {
- VK_FILL_MODE_POINTS = 0,
+ VK_FILL_MODE_SOLID = 0,
VK_FILL_MODE_WIREFRAME = 1,
- VK_FILL_MODE_SOLID = 2,
- VK_FILL_MODE_BEGIN_RANGE = VK_FILL_MODE_POINTS,
- VK_FILL_MODE_END_RANGE = VK_FILL_MODE_SOLID,
- VK_FILL_MODE_NUM = (VK_FILL_MODE_SOLID - VK_FILL_MODE_POINTS + 1),
+ VK_FILL_MODE_POINTS = 2,
+ VK_FILL_MODE_BEGIN_RANGE = VK_FILL_MODE_SOLID,
+ VK_FILL_MODE_END_RANGE = VK_FILL_MODE_POINTS,
+ VK_FILL_MODE_NUM = (VK_FILL_MODE_POINTS - VK_FILL_MODE_SOLID + 1),
VK_FILL_MODE_MAX_ENUM = 0x7FFFFFFF
} VkFillMode;
typedef enum {
- VK_CULL_MODE_NONE = 0,
- VK_CULL_MODE_FRONT = 1,
- VK_CULL_MODE_BACK = 2,
- VK_CULL_MODE_FRONT_AND_BACK = 3,
- VK_CULL_MODE_BEGIN_RANGE = VK_CULL_MODE_NONE,
- VK_CULL_MODE_END_RANGE = VK_CULL_MODE_FRONT_AND_BACK,
- VK_CULL_MODE_NUM = (VK_CULL_MODE_FRONT_AND_BACK - VK_CULL_MODE_NONE + 1),
- VK_CULL_MODE_MAX_ENUM = 0x7FFFFFFF
-} VkCullMode;
-
-typedef enum {
VK_FRONT_FACE_CCW = 0,
VK_FRONT_FACE_CW = 1,
VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_CCW,
@@ -667,14 +654,14 @@ typedef enum {
} VkSamplerMipmapMode;
typedef enum {
- VK_SAMPLER_ADDRESS_MODE_WRAP = 0,
- VK_SAMPLER_ADDRESS_MODE_MIRROR = 1,
- VK_SAMPLER_ADDRESS_MODE_CLAMP = 2,
- VK_SAMPLER_ADDRESS_MODE_MIRROR_ONCE = 3,
- VK_SAMPLER_ADDRESS_MODE_CLAMP_BORDER = 4,
- VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_WRAP,
- VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_BORDER,
- VK_SAMPLER_ADDRESS_MODE_NUM = (VK_SAMPLER_ADDRESS_MODE_CLAMP_BORDER - VK_SAMPLER_ADDRESS_MODE_WRAP + 1),
+ VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
+ VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
+ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
+ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
+ VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
+ VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
+ VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
+ VK_SAMPLER_ADDRESS_MODE_NUM = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
} VkSamplerAddressMode;
@@ -729,11 +716,11 @@ typedef enum {
} VkAttachmentStoreOp;
typedef enum {
- VK_PIPELINE_BIND_POINT_COMPUTE = 0,
- VK_PIPELINE_BIND_POINT_GRAPHICS = 1,
- VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
- VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
- VK_PIPELINE_BIND_POINT_NUM = (VK_PIPELINE_BIND_POINT_GRAPHICS - VK_PIPELINE_BIND_POINT_COMPUTE + 1),
+ VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
+ VK_PIPELINE_BIND_POINT_COMPUTE = 1,
+ VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
+ VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
+ VK_PIPELINE_BIND_POINT_NUM = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
} VkPipelineBindPoint;
@@ -922,6 +909,7 @@ typedef enum {
VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
+ VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
} VkShaderStageFlagBits;
typedef VkFlags VkPipelineCacheCreateFlags;
@@ -938,6 +926,14 @@ typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
typedef VkFlags VkPipelineTesselationStateCreateFlags;
typedef VkFlags VkPipelineViewportStateCreateFlags;
typedef VkFlags VkPipelineRasterStateCreateFlags;
+
+typedef enum {
+ VK_CULL_MODE_NONE = 0,
+ VK_CULL_MODE_FRONT_BIT = 0x00000001,
+ VK_CULL_MODE_BACK_BIT = 0x00000002,
+ VK_CULL_MODE_FRONT_AND_BACK = 0x3,
+} VkCullModeFlagBits;
+typedef VkFlags VkCullModeFlags;
typedef VkFlags VkPipelineMultisampleStateCreateFlags;
typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
typedef VkFlags VkPipelineColorBlendStateCreateFlags;
@@ -1044,6 +1040,7 @@ typedef enum {
VK_STENCIL_FACE_NONE = 0,
VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
VK_STENCIL_FACE_BACK_BIT = 0x00000002,
+ VK_STENCIL_FRONT_AND_BACK = 0x3,
} VkStencilFaceFlagBits;
typedef VkFlags VkStencilFaceFlags;
@@ -1270,6 +1267,7 @@ typedef struct {
uint32_t maxColorAttachments;
uint32_t maxSampledImageColorSamples;
uint32_t maxSampledImageDepthSamples;
+ uint32_t maxSampledImageStencilSamples;
uint32_t maxSampledImageIntegerSamples;
uint32_t maxStorageImageSamples;
uint32_t maxSampleMaskWords;
@@ -1698,7 +1696,7 @@ typedef struct {
VkBool32 depthClampEnable;
VkBool32 rasterizerDiscardEnable;
VkFillMode fillMode;
- VkCullMode cullMode;
+ VkCullModeFlags cullMode;
VkFrontFace frontFace;
VkBool32 depthBiasEnable;
float depthBiasConstantFactor;
@@ -1929,8 +1927,6 @@ typedef struct {
} VkFramebufferCreateInfo;
typedef struct {
- VkStructureType sType;
- const void* pNext;
VkAttachmentDescriptionFlags flags;
VkFormat format;
uint32_t samples;
@@ -1948,8 +1944,6 @@ typedef struct {
} VkAttachmentReference;
typedef struct {
- VkStructureType sType;
- const void* pNext;
VkSubpassDescriptionFlags flags;
VkPipelineBindPoint pipelineBindPoint;
uint32_t inputAttachmentCount;
@@ -1957,14 +1951,12 @@ typedef struct {
uint32_t colorAttachmentCount;
const VkAttachmentReference* pColorAttachments;
const VkAttachmentReference* pResolveAttachments;
- VkAttachmentReference depthStencilAttachment;
+ const VkAttachmentReference* pDepthStencilAttachment;
uint32_t preserveAttachmentCount;
const VkAttachmentReference* pPreserveAttachments;
} VkSubpassDescription;
typedef struct {
- VkStructureType sType;
- const void* pNext;
uint32_t srcSubpass;
uint32_t destSubpass;
VkPipelineStageFlags srcStageMask;