Change log for June 10, 2018 Vulkan 1.1.77 spec update:
* Update release number to 77. Public Issues: * Remove redundant asciidoctor ifdef in slink:VkDeviceCreateInfo valid usage statement (public pull request 718). Internal Issues: * Require that the returned slink:VkMemoryRequirements::pname:alignment reflect the minimum alignment requirements for the buffer's usages, and make dynamic offset alignment valid usage more explicit for flink:vkBindBufferMemory and flink:vkCmdBindDescriptorSets (internal issue 1170). * Explicitly state that objects of type code:OpTypeImage, code:OpTypeSampler, and code:OpTypeSampledImage must not be stored to in the <<spirvenv-module-validation, Validation Rules within a Module>> section (internal issue 1262). * Clarify rules about validating descriptor set/binding against storage class and descriptor type in the <<spirvenv-module-validation, Validation Rules within a Module>> section, and add an anchor for and references to the <<interfaces-resources-storage-class-correspondence, Shader Resource and Storage Class Correspondence>> table (internal issue 1266). * Use correct spelling of SPIR-V decoration code:NonWritable in several places (internal issue 1298). Other Issues: * Update specification links to files in the old KhronosGroup/Vulkan-LoaderAndValidationLayers repository with corresponding links into the new repositories that replace it. * Move validity requirement for slink:VkSamplerCreateInfo into the valid usage block instead of the body text, and give it a VUID. * Use the full name of the "`style guide`" in a reference in the description of slink:vkGetPhysicalDeviceProperties, update the <<vulkan-styleguide, link to that document>>, and use the the full name in the registry index page.
This commit is contained in:
parent
1329718aba
commit
0d5f92c7fa
2
Makefile
2
Makefile
|
@ -106,7 +106,7 @@ VERBOSE =
|
|||
# $(EXTENSIONS))
|
||||
# ADOCOPTS options for asciidoc->HTML5 output
|
||||
NOTEOPTS = -a editing-notes -a implementation-guide
|
||||
PATCHVERSION = 76
|
||||
PATCHVERSION = 77
|
||||
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
|
||||
SPECREVISION = 1.1.$(PATCHVERSION)
|
||||
else
|
||||
|
|
|
@ -72,8 +72,7 @@ The example code for the this extension (like the `<<VK_KHR_surface>>` and
|
|||
`VK_GOOGLE_display_timing` extensions) is contained in the cube demo that is
|
||||
shipped with the official Khronos SDK, and is being kept up-to-date in that
|
||||
location (see:
|
||||
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.c
|
||||
).
|
||||
https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c ).
|
||||
====
|
||||
|
||||
=== Version History
|
||||
|
|
|
@ -237,7 +237,7 @@ extensions was removed from the appendix after revision 1.0.43.
|
|||
The display enumeration example code was ported to the cube demo that is
|
||||
shipped with the official Khronos SDK, and is being kept up-to-date in that
|
||||
location (see:
|
||||
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.c).
|
||||
https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c).
|
||||
====
|
||||
|
||||
=== Version History
|
||||
|
|
|
@ -96,7 +96,7 @@ extensions was removed from the appendix after revision 1.0.43.
|
|||
The display swapchain creation example code was ported to the cube demo that
|
||||
is shipped with the official Khronos SDK, and is being kept up-to-date in
|
||||
that location (see:
|
||||
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.c).
|
||||
https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c).
|
||||
====
|
||||
|
||||
=== Version History
|
||||
|
|
|
@ -72,7 +72,7 @@ The example code for the `VK_KHR_surface` and `<<VK_KHR_swapchain>>`
|
|||
extensions was removed from the appendix after revision 1.0.29.
|
||||
This WSI example code was ported to the cube demo that is shipped with the
|
||||
official Khronos SDK, and is being kept up-to-date in that location (see:
|
||||
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.c).
|
||||
https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c).
|
||||
====
|
||||
|
||||
=== Issues
|
||||
|
|
|
@ -466,7 +466,7 @@ The example code for the `<<VK_KHR_surface>>` and `VK_KHR_swapchain`
|
|||
extensions was removed from the appendix after revision 1.0.29.
|
||||
This WSI example code was ported to the cube demo that is shipped with the
|
||||
official Khronos SDK, and is being kept up-to-date in that location (see:
|
||||
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.c).
|
||||
https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c).
|
||||
====
|
||||
|
||||
=== Version History
|
||||
|
|
|
@ -387,7 +387,7 @@ endif::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[]
|
|||
entry points must: declare code:OriginUpperLeft.
|
||||
* The code:PixelCenterInteger execution mode must: not be used.
|
||||
Pixels are always centered at half-integer coordinates.
|
||||
* Images
|
||||
* Images and Samplers
|
||||
** code:OpTypeImage must: declare a scalar 32-bit float or 32-bit integer
|
||||
type for the "`Sampled Type`".
|
||||
(code:RelaxedPrecision can: be applied to a sampling instruction and to
|
||||
|
@ -403,7 +403,7 @@ endif::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[]
|
|||
<<features-features-shaderStorageImageWriteWithoutFormat,shaderStorageImageWriteWithoutFormat>>
|
||||
is not enabled and an code:OpTypeImage has "`Image Format`" operand of
|
||||
code:Unknown, any variables created with the given type must be
|
||||
decorated with code:NonWriteable.
|
||||
decorated with code:NonWritable.
|
||||
** code:OpImageQuerySizeLod, and code:OpImageQueryLevels must: only
|
||||
consume an "`Image`" operand whose type has its "`Sampled`" operand set
|
||||
to 1.
|
||||
|
@ -412,6 +412,9 @@ endif::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[]
|
|||
used, must: be a vector that was formed with constant 0 for the [eq]#u#
|
||||
and [eq]#v# components.
|
||||
** The "`Depth`" operand of code:OpTypeImage is ignored.
|
||||
** Objects of types code:OpTypeImage, code:OpTypeSampler,
|
||||
code:OpTypeSampledImage, and arrays of these types must: not be stored
|
||||
to or modified.
|
||||
* Decorations
|
||||
** The code:GLSLShared and code:GLSLPacked decorations must: not be used.
|
||||
** The code:Flat, code:NoPerspective, code:Sample, and code:Centroid
|
||||
|
@ -441,6 +444,10 @@ ifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[]
|
|||
https://www.khronos.org/registry/spir-v/extensions/KHR/SPV_KHR_16bit_storage.html[`SPV_KHR_16bit_storage`]
|
||||
SPIR-V extension.
|
||||
endif::VK_VERSION_1_1,VK_KHR_16bit_storage[]
|
||||
** code:DescriptorSet and code:Binding decorations must: obey the
|
||||
constraints on storage class, type, and descriptor type described in
|
||||
<<interfaces-resources-setandbinding,DescriptorSet and Binding
|
||||
Assignment>>
|
||||
* code:OpTypeRuntimeArray must: only be used for:
|
||||
** the last member of an code:OpTypeStruct
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[]
|
||||
|
|
|
@ -32,8 +32,9 @@ corresponding to different resources or usage.
|
|||
The following sections describe the API definitions of each descriptor type.
|
||||
The mapping of each type to SPIR-V is listed in the
|
||||
<<interfaces-resources-correspondence, Shader Resource and Descriptor Type
|
||||
Correspondence and Shader Resource and Storage Class Correspondence>> tables
|
||||
in the <<interfaces, Shader Interfaces>> chapter.
|
||||
Correspondence>> and <<interfaces-resources-storage-class-correspondence
|
||||
Shader Resource and Storage Class Correspondence>> tables in the
|
||||
<<interfaces, Shader Interfaces>> chapter.
|
||||
|
||||
|
||||
[[descriptorsets-storageimage]]
|
||||
|
@ -3258,9 +3259,16 @@ descriptor set.
|
|||
* [[VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361]]
|
||||
pname:pipelineBindPoint must: be supported by the pname:commandBuffer's
|
||||
parent sname:VkCommandPool's queue family
|
||||
* [[VUID-vkCmdBindDescriptorSets-pDynamicOffsets-00362]]
|
||||
Each element of pname:pDynamicOffsets must: satisfy the required
|
||||
alignment for the corresponding descriptor binding's descriptor type
|
||||
* [[VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971]]
|
||||
Each element of pname:pDynamicOffsets which corresponds to a descriptor
|
||||
binding with type ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must:
|
||||
be a multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minUniformBufferOffsetAlignment
|
||||
* [[VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972]]
|
||||
Each element of pname:pDynamicOffsets which corresponds to a descriptor
|
||||
binding with type ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must:
|
||||
be a multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minStorageBufferOffsetAlignment
|
||||
****
|
||||
|
||||
include::../validity/protos/vkCmdBindDescriptorSets.txt[]
|
||||
|
|
|
@ -149,9 +149,9 @@ If the vendor has a https://pcisig.com/membership/member-companies[PCI
|
|||
vendor ID], the low 16 bits of pname:vendorID must: contain that PCI vendor
|
||||
ID, and the remaining bits must: be set to zero.
|
||||
Otherwise, the value returned must: be a valid Khronos vendor ID, obtained
|
||||
as described in the <<vulkan-styleguide,Vulkan Documentation and
|
||||
Extensions>> document in the section "`Registering a Vendor ID with
|
||||
Khronos`".
|
||||
as described in the <<vulkan-styleguide,Vulkan Documentation and Extensions:
|
||||
Procedures and Conventions>> document in the section "`Registering a Vendor
|
||||
ID with Khronos`".
|
||||
Khronos vendor IDs are allocated starting at 0x10000, to distinguish them
|
||||
from the PCI vendor ID namespace.
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ This is generally discouraged, as it increases the probability of
|
|||
incompatibilities with new extensions.
|
||||
The validation layers wrap handles in order to track the proper use and
|
||||
destruction of each object.
|
||||
See the <<LoaderAndValidationLayers, "`Vulkan Loader Specification and
|
||||
See the <<LoaderAndLayerInterface, "`Vulkan Loader Specification and
|
||||
Architecture Overview`">> document for additional information.
|
||||
|
||||
[open,refpage='vkEnumerateInstanceLayerProperties',desc='Returns up to requested number of global layer properties',type='protos']
|
||||
|
@ -220,7 +220,7 @@ extension authors should: add support for their extensions to the Khronos
|
|||
validation layers.
|
||||
This is especially important for new commands whose parameters have been
|
||||
wrapped by the validation layers.
|
||||
See the <<LoaderAndValidationLayers, "`Vulkan Loader Specification and
|
||||
See the <<LoaderAndLayerInterface, "`Vulkan Loader Specification and
|
||||
Architecture Overview`">> document for additional information.
|
||||
|
||||
[NOTE]
|
||||
|
|
|
@ -521,7 +521,7 @@ additional supported properties of individual formats.
|
|||
tessellation, and geometry shader stages.
|
||||
If this feature is not enabled, all storage image, storage texel
|
||||
buffers, and storage buffer variables used by these stages in shader
|
||||
modules must: be decorated with the code:NonWriteable decoration (or the
|
||||
modules must: be decorated with the code:NonWritable decoration (or the
|
||||
code:readonly memory qualifier in GLSL).
|
||||
* [[features-features-fragmentStoresAndAtomics]]
|
||||
pname:fragmentStoresAndAtomics specifies whether storage buffers and
|
||||
|
@ -529,7 +529,7 @@ additional supported properties of individual formats.
|
|||
stage.
|
||||
If this feature is not enabled, all storage image, storage texel
|
||||
buffers, and storage buffer variables used by the fragment stage in
|
||||
shader modules must: be decorated with the code:NonWriteable decoration
|
||||
shader modules must: be decorated with the code:NonWritable decoration
|
||||
(or the code:readonly memory qualifier in GLSL).
|
||||
* [[features-features-shaderTessellationAndGeometryPointSize]]
|
||||
pname:shaderTessellationAndGeometryPointSize specifies whether the
|
||||
|
|
|
@ -337,7 +337,7 @@ determine the version of Vulkan.
|
|||
|
||||
Implicit layers must: be disabled if they do not support a version at least
|
||||
as high as pname:apiVersion.
|
||||
See the <<LoaderAndValidationLayers, "Vulkan Loader Specification and
|
||||
See the <<LoaderAndLayerInterface, "Vulkan Loader Specification and
|
||||
Architecture Overview">> document for additional information.
|
||||
|
||||
[NOTE]
|
||||
|
|
|
@ -564,15 +564,6 @@ Variables identified with a storage class of code:UniformConstant and a
|
|||
decoration of code:InputAttachmentIndex must: be declared as described in
|
||||
<<interfaces-inputattachment,Fragment Input Attachment Interface>>.
|
||||
|
||||
Each shader variable in the descriptor set interface must: be of a type that
|
||||
corresponds to the pname:descriptorType in the descriptor set layout binding
|
||||
that the variable is assigned to, as described in
|
||||
<<interfaces-resources-setandbinding, DescriptorSet and Binding
|
||||
Assignment>>.
|
||||
See <<interfaces-resources-correspondence,Shader Resource and Descriptor
|
||||
Type Correspondence>> for the relationship between shader types and
|
||||
descriptor types.
|
||||
|
||||
SPIR-V variables decorated with a descriptor set and binding that identify a
|
||||
<<descriptorsets-combinedimagesampler, combined image sampler descriptor>>
|
||||
can: have a type of code:OpTypeImage, code:OpTypeSampler (code:Sampled=1),
|
||||
|
@ -669,6 +660,7 @@ endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
|
|||
| input attachment | ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
|
||||
|====
|
||||
|
||||
[[interfaces-resources-storage-class-correspondence]]
|
||||
.Shader Resource and Storage Class Correspondence
|
||||
[width="100%",cols="<21%,<22%,<27%,<30%",options="header"]
|
||||
|====
|
||||
|
@ -762,6 +754,10 @@ pipeline layout must: contain a descriptor set layout binding in that
|
|||
descriptor set layout and for that binding number, and that binding's
|
||||
pname:stageFlags must: include the appropriate elink:VkShaderStageFlagBits
|
||||
for that stage.
|
||||
The variable must: be of a valid resource type determined by its SPIR-V type
|
||||
and storage class, as defined in
|
||||
<<interfaces-resources-storage-class-correspondence,Shader Resource and
|
||||
Storage Class Correspondence>>.
|
||||
The descriptor set layout binding must: be of a corresponding descriptor
|
||||
type, as defined in <<interfaces-resources-correspondence,Shader Resource
|
||||
and Descriptor Type Correspondence>>.
|
||||
|
|
|
@ -142,10 +142,10 @@ February 10, 2016.
|
|||
|
||||
[[vulkan-styleguide]] J. Leech and T. Hector, _Vulkan Documentation and
|
||||
Extensions: Procedures and Conventions_,
|
||||
https://www.khronos.org/registry/vulkan/, July 11, 2016
|
||||
https://www.khronos.org/registry/vulkan/specs/1.1/styleguide.html
|
||||
|
||||
[[LoaderAndValidationLayers]]
|
||||
[[LoaderAndLayerInterface]]
|
||||
_Vulkan Loader Specification and Architecture Overview_,
|
||||
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/loader/LoaderAndLayerInterface.md,
|
||||
https://github.com/KhronosGroup/Vulkan-Loader/blob/master/loader/LoaderAndLayerInterface.md,
|
||||
August, 2016.
|
||||
|
||||
|
|
|
@ -2985,6 +2985,19 @@ endif::VK_VERSION_1_1,VK_KHR_external_memory[]
|
|||
created with the same combination of values for the pname:usage and
|
||||
pname:flags members in the sname:VkBufferCreateInfo structure passed to
|
||||
fname:vkCreateBuffer.
|
||||
* The pname:alignment member satisfies the buffer descriptor offset
|
||||
alignment requirements associated with the sname:VkBuffer's pname:usage:
|
||||
** If pname:usage included
|
||||
ename:VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or
|
||||
ename:VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, pname:alignment must:
|
||||
be an integer multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment.
|
||||
** If pname:usage included ename:VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
|
||||
pname:alignment must: be an integer multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minUniformBufferOffsetAlignment.
|
||||
** If pname:usage included ename:VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
|
||||
pname:alignment must: be an integer multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minStorageBufferOffsetAlignment.
|
||||
* For images created with a color format, the pname:memoryTypeBits member
|
||||
is identical for all sname:VkImage objects created with the same
|
||||
combination of values for the pname:tiling member, the
|
||||
|
@ -3381,22 +3394,6 @@ endif::VK_VERSION_1_1,VK_KHR_bind_memory2[]
|
|||
flags
|
||||
* [[VUID-vkBindBufferMemory-memoryOffset-01031]]
|
||||
pname:memoryOffset must: be less than the size of pname:memory
|
||||
* [[VUID-vkBindBufferMemory-buffer-01032]]
|
||||
If pname:buffer was created with the
|
||||
ename:VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or
|
||||
ename:VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, pname:memoryOffset must:
|
||||
be a multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment
|
||||
* [[VUID-vkBindBufferMemory-buffer-01033]]
|
||||
If pname:buffer was created with the
|
||||
ename:VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, pname:memoryOffset must: be a
|
||||
multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minUniformBufferOffsetAlignment
|
||||
* [[VUID-vkBindBufferMemory-buffer-01034]]
|
||||
If pname:buffer was created with the
|
||||
ename:VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, pname:memoryOffset must: be a
|
||||
multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minStorageBufferOffsetAlignment
|
||||
* [[VUID-vkBindBufferMemory-memory-01035]]
|
||||
pname:memory must: have been allocated using one of the memory types
|
||||
allowed in the pname:memoryTypeBits member of the
|
||||
|
@ -3522,22 +3519,6 @@ endif::VK_KHR_bind_memory2[]
|
|||
flags
|
||||
* [[VUID-VkBindBufferMemoryInfo-memoryOffset-01595]]
|
||||
pname:memoryOffset must: be less than the size of pname:memory
|
||||
* [[VUID-VkBindBufferMemoryInfo-buffer-01596]]
|
||||
If pname:buffer was created with the
|
||||
ename:VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or
|
||||
ename:VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, pname:memoryOffset must:
|
||||
be a multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment
|
||||
* [[VUID-VkBindBufferMemoryInfo-buffer-01597]]
|
||||
If pname:buffer was created with the
|
||||
ename:VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, pname:memoryOffset must: be a
|
||||
multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minUniformBufferOffsetAlignment
|
||||
* [[VUID-VkBindBufferMemoryInfo-buffer-01598]]
|
||||
If pname:buffer was created with the
|
||||
ename:VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, pname:memoryOffset must: be a
|
||||
multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minStorageBufferOffsetAlignment
|
||||
* [[VUID-VkBindBufferMemoryInfo-memory-01599]]
|
||||
pname:memory must: have been allocated using one of the memory types
|
||||
allowed in the pname:memoryTypeBits member of the
|
||||
|
|
|
@ -82,7 +82,6 @@ include::../api/structs/VkSamplerCreateInfo.txt[]
|
|||
* pname:minLod and pname:maxLod are the values used to clamp the computed
|
||||
LOD value, as described in the <<textures-level-of-detail-operation,
|
||||
Level-of-Detail Operation>> section.
|
||||
pname:maxLod must: be greater than or equal to pname:minLod.
|
||||
* pname:borderColor is a elink:VkBorderColor value specifying the
|
||||
predefined border color to use.
|
||||
* [[samplers-unnormalizedCoordinates]] pname:unnormalizedCoordinates
|
||||
|
@ -163,6 +162,8 @@ pname:maxSamplerAllocationCount limit.
|
|||
* [[VUID-VkSamplerCreateInfo-mipLodBias-01069]]
|
||||
The absolute value of pname:mipLodBias must: be less than or equal to
|
||||
sname:VkPhysicalDeviceLimits::pname:maxSamplerLodBias
|
||||
* [[VUID-VkSamplerCreateInfo-maxLod-01973]]
|
||||
pname:maxLod must: be greater than or equal to pname:minLod
|
||||
* [[VUID-VkSamplerCreateInfo-anisotropyEnable-01070]]
|
||||
If the <<features-features-samplerAnisotropy,anisotropic sampling>>
|
||||
feature is not enabled, pname:anisotropyEnable must: be ename:VK_FALSE
|
||||
|
|
|
@ -43,7 +43,7 @@ extern "C" {
|
|||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 76
|
||||
#define VK_HEADER_VERSION 77
|
||||
|
||||
|
||||
#define VK_NULL_HANDLE 0
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# The value to start tagging VU statements at, unless overridden by -nextvu
|
||||
startVUID = 1971
|
||||
startVUID = 1974
|
||||
|
|
|
@ -153,7 +153,7 @@ server.
|
|||
<type category="define">// Vulkan 1.1 version number
|
||||
#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
|
||||
<type category="define">// Version of this file
|
||||
#define <name>VK_HEADER_VERSION</name> 76</type>
|
||||
#define <name>VK_HEADER_VERSION</name> 77</type>
|
||||
|
||||
<type category="define">
|
||||
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
|
||||
|
|
Loading…
Reference in New Issue