From 5a4c5e5925c65c6e6677c1fb21571684b4b0a77b Mon Sep 17 00:00:00 2001 From: Jon Leech Date: Wed, 24 Feb 2016 22:02:34 -0800 Subject: [PATCH] Change log for February 25, 2015 Vulkan 1.0.4 spec update: * Bump API patch number from 3 to 4 for the first public update to the spec. Add patch number to the spec title (this will be done automatically from XML, later). * Fixes for numerous editorial issues. Regularize descriptions of variable-length array queries. Properly tag enumerants so they come out in the right font (many were mislabeled in usage tags in vk.xml, or not tagged). Spelling and markup corrections (public issue 4). * Fix typos and clearly separate description of different types of memory areas (public issue 5). * Use standards-compliant preprocessor guard symbols on headers (public issue 7). * Note that Github users can't currently set labels on issues, and recommend a fallback approach (public issue 15). * Use latexmath prefix on len= attributes (public issue 29). * Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public issue 65). * Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an optional feature not introducing new commands or enums (internal issue 104). * Cleanup invariance language inherited from the GL specification to not refer to nonexistent (GL-specific) state (internal issue 111). * Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to not be the "base offset within the index buffer" but rather the "value added to the vertex index before indexing into the vertex buffer" (internal issue 118). * Fix drawing chapter in the "Programmable Primitive Shading" section where it described categories of drawing commands. It referenced flink:vkCmdDrawIndexed twice. Replace the second reference with flink:vkCmdDrawIndexedIndirect (internal issue 119). * Typo fixed in <> sparse memory example (internal issue 122). * Add flink:VkDisplayPlaneAlphaFlagsKHR to section of VK_KHR_display extension (internal issue 125) * Add missing optional="false,true" to flink:vkGetImageSparseMemoryRequirements pname:pSparseMemoryRequirementCount parameter (internal issue 132) * Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT (internal issue 133) * Fix a handful of broken cross-references in the <> chapter (internal issue 134). * Fix "Input Attachement" GLSL example to use correct syntax (internal issue 135). * Update XML schema and documentation to accomodate recently added attributes for validity. Add some introductory material describing design choices and pointing to the public repository to file issues. * Put include of validity in the core spec extensions chapter on its own line, so that asciidoc is happy. * Fix vertexOffset language to specify that it's the value added to the vertex index before indexing into the vertex buffer, not the base offset within the index buffer. * Fix error in the description of flink:vkCmdNextSubpass. --- doc/specs/vulkan/Makefile | 2 +- .../VK_KHR_sampler_mirror_clamp_to_edge.txt | 59 ++++++ doc/specs/vulkan/appendices/invariance.txt | 2 +- doc/specs/vulkan/chapters/cmdbuffers.txt | 4 +- doc/specs/vulkan/chapters/descriptorsets.txt | 2 +- doc/specs/vulkan/chapters/devsandqueues.txt | 23 ++- doc/specs/vulkan/chapters/drawing.txt | 3 +- doc/specs/vulkan/chapters/extensions.txt | 91 +++++---- doc/specs/vulkan/chapters/features.txt | 2 +- doc/specs/vulkan/chapters/fundamentals.txt | 39 ++-- doc/specs/vulkan/chapters/introduction.txt | 5 +- doc/specs/vulkan/chapters/renderpass.txt | 2 +- doc/specs/vulkan/chapters/samplers.txt | 15 +- doc/specs/vulkan/chapters/sparsemem.txt | 75 ++++---- doc/specs/vulkan/chapters/synchronization.txt | 2 +- doc/specs/vulkan/chapters/vertexpostproc.txt | 2 +- .../vulkan/validity/protos/vkCmdBlitImage.txt | 8 +- .../validity/protos/vkCmdClearColorImage.txt | 4 +- .../protos/vkCmdClearDepthStencilImage.txt | 4 +- .../validity/protos/vkCmdCopyBuffer.txt | 4 +- .../protos/vkCmdCopyBufferToImage.txt | 6 +- .../vulkan/validity/protos/vkCmdCopyImage.txt | 8 +- .../protos/vkCmdCopyImageToBuffer.txt | 6 +- .../validity/protos/vkCmdExecuteCommands.txt | 4 +- .../validity/protos/vkCmdFillBuffer.txt | 2 +- .../validity/protos/vkCmdPipelineBarrier.txt | 8 +- .../validity/protos/vkCmdResetEvent.txt | 4 +- .../validity/protos/vkCmdResolveImage.txt | 4 +- .../vulkan/validity/protos/vkCmdSetEvent.txt | 4 +- .../validity/protos/vkCmdUpdateBuffer.txt | 6 +- .../validity/protos/vkCmdWaitEvents.txt | 10 +- .../vkGetImageSparseMemoryRequirements.txt | 3 +- .../structs/VkBufferMemoryBarrier.txt | 4 +- .../validity/structs/VkImageCreateInfo.txt | 28 +-- .../validity/structs/VkImageMemoryBarrier.txt | 4 +- .../VkPipelineColorBlendAttachmentState.txt | 8 +- ...VkPipelineInputAssemblyStateCreateInfo.txt | 2 +- .../VkPipelineShaderStageCreateInfo.txt | 4 +- .../validity/structs/VkSamplerCreateInfo.txt | 1 + .../structs/VkShaderModuleCreateInfo.txt | 2 +- .../vulkan/validity/structs/VkSubmitInfo.txt | 6 +- .../validity/structs/VkSubpassDependency.txt | 8 +- doc/specs/vulkan/vkapi.py | 6 +- doc/specs/vulkan/vkspec.txt | 2 + src/spec/generator.py | 3 +- src/spec/genvk.py | 4 + src/spec/readme.pdf | Bin 165198 -> 176599 bytes src/spec/readme.tex | 147 +++++++++----- src/spec/registry.rnc | 15 +- src/spec/vk.xml | 181 ++++++++++-------- src/vulkan/vk_platform.h | 6 +- src/vulkan/vulkan.h | 22 ++- 52 files changed, 512 insertions(+), 354 deletions(-) create mode 100644 doc/specs/vulkan/appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt diff --git a/doc/specs/vulkan/Makefile b/doc/specs/vulkan/Makefile index d52d6bc4..cc344dc9 100644 --- a/doc/specs/vulkan/Makefile +++ b/doc/specs/vulkan/Makefile @@ -126,7 +126,7 @@ INCLUDES := $(wildcard protos/*.txt structs/*.txt flags/*.txt enums/*.txt funcpo COMMONDOCS := $(CHAPTERS) $(INCLUDES) # A generate included file with the spec version, date, and git commit SPECVERSION = specversion.txt -SPECREVISION = 1.0 +SPECREVISION = 1.0.4 SPECREMARK = # Spec targets diff --git a/doc/specs/vulkan/appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt b/doc/specs/vulkan/appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt new file mode 100644 index 00000000..a47958b0 --- /dev/null +++ b/doc/specs/vulkan/appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt @@ -0,0 +1,59 @@ +== VK_KHR_sampler_mirror_clamp_to_edge + +*Name String*:: VK_KHR_sampler_mirror_clamp_to_edge +*Extension Type*:: Device extension +*Registered Extension Number*:: 15 +*Status*:: Final +*Last Modified Date*:: 16/02/2016 +*Revision*:: 1 +*Dependencies*:: + - This extension is written against version 1.0. of the {apiname} API. +*Contributors*:: + - Tobias Hector, Imagination Technologies +*Contacts*:: + - Tobias Hector (tobias.hector@imgtec.com) + +VK_KHR_sampler_mirror_clamp_to_edge extends the set of sampler address modes to +include an additional mode (ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE) +that effectively uses a texture map twice as large as the original image in +which the additional half of the new image is a mirror image of the original +image. + +This new mode relaxes the need to generate images whose opposite edges +match by using the original image to generate a matching "mirror image". +This mode allows the texture to be mirrored only once in the negative +s, t, and r directions. + +=== New Enum Constants + + * Extending ename:VkSamplerAddressMode: + ** ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE + +=== Example + +Creating a sampler with the new address mode in each dimension + + +[source,{basebackend@docbook:C++:cpp}] +---------------------------------------- + VkSamplerCreateInfo createInfo = + { + VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO // sType + // Other members set to application-desired values + }; + + createInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE; + createInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE; + createInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE; + + VkSampler sampler; + VkResult result = vkCreateSampler( + device, + &createInfo, + &sampler); +---------------------------------------- + +=== Version History + + * Revision 1, 2016-02-16 (Tobias Hector) + - Initial draft \ No newline at end of file diff --git a/doc/specs/vulkan/appendices/invariance.txt b/doc/specs/vulkan/appendices/invariance.txt index fa0839da..efcb0875 100644 --- a/doc/specs/vulkan/appendices/invariance.txt +++ b/doc/specs/vulkan/appendices/invariance.txt @@ -76,7 +76,7 @@ use of any other state value is not affected by the change):_ * _Pixel storage state_ *Corollary 1* _Fragment generation is invariant with respect to the state -values marked with * in Rule 2._ +values listed in Rule 2._ *Rule 3* _The arithmetic of each per-fragment operation is invariant except with respect to parameters that directly control it._ diff --git a/doc/specs/vulkan/chapters/cmdbuffers.txt b/doc/specs/vulkan/chapters/cmdbuffers.txt index 74361a1d..f7feaa44 100644 --- a/doc/specs/vulkan/chapters/cmdbuffers.txt +++ b/doc/specs/vulkan/chapters/cmdbuffers.txt @@ -203,13 +203,15 @@ include::../protos/vkResetCommandBuffer.txt[] can: be in any state, and is put in the initial state. * pname:flags is of type elink:VkCommandBufferResetFlags: + +-- include::../enums/VkCommandBufferResetFlagBits.txt[] -+ + If pname:flags includes ename:VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT, then most or all memory resources currently owned by the command buffer should: be returned to the parent command pool. If this flag is not set, then the command buffer may: hold onto memory resources and reuse them when recording commands. +-- include::../validity/protos/vkResetCommandBuffer.txt[] diff --git a/doc/specs/vulkan/chapters/descriptorsets.txt b/doc/specs/vulkan/chapters/descriptorsets.txt index 0a52b212..db06cb19 100644 --- a/doc/specs/vulkan/chapters/descriptorsets.txt +++ b/doc/specs/vulkan/chapters/descriptorsets.txt @@ -503,7 +503,7 @@ attachment index in addition to descriptor set and binding numbers. .GLSL example [source,{basebackend@docbook:c:glsl}] --------------------------------------------------- -layout (input_attachment_index=i, set=m, binding=n) uniform subpass myInputAttachment; +layout (input_attachment_index=i, set=m, binding=n) uniform subpassInput myInputAttachment; --------------------------------------------------- .SPIR-V example diff --git a/doc/specs/vulkan/chapters/devsandqueues.txt b/doc/specs/vulkan/chapters/devsandqueues.txt index 48177e41..e14f1ada 100644 --- a/doc/specs/vulkan/chapters/devsandqueues.txt +++ b/doc/specs/vulkan/chapters/devsandqueues.txt @@ -23,13 +23,20 @@ include::../protos/vkEnumeratePhysicalDevices.txt[] * pname:instance is a handle to a {apiname} instance previously created with fname:vkCreateInstance. - * If pname:pPhysicalDevices is `NULL`, the number of physical devices - available is returned in pname:pPhysicalDeviceCount. If - pname:pPhysicalDevices is not `NULL`, - * pname:pPhysicalDeviceCount must: point to a variable set by the user to - the size of the array pointed to by pname:pPhysicalDevices, and is - overwritten with the number of physical devices actually written to - pname:pPhysicalDevices. + * pname:pPhysicalDeviceCount is a pointer to an integer related to the + number of physical devices available or queried, as described below. + * pname:pPhysicalDevices is either `NULL` or a pointer to an + array of sname:VkPhysicalDevice structures. + +If pname:pPhysicalDevices is `NULL`, then the number of physical devices +available is returned in pname:pPhysicalDeviceCount. Otherwise, +pname:pPhysicalDeviceCount must: point to a variable set by the user to +the number of elements in the pname:pPhysicalDevices array, and on +return the variable is overwritten with the number of structures actually +written to pname:pPhysicalDevices. If the value of +pname:pPhysicalDeviceCount is less than the number of physical devices +available, at most pname:pPhysicalDeviceCount structures will be +written. include::../validity/protos/vkEnumeratePhysicalDevices.txt[] @@ -142,7 +149,7 @@ include::../protos/vkGetPhysicalDeviceQueueFamilyProperties.txt[] * pname:pQueueFamilyPropertyCount is a pointer to an integer related to the number of queue families available or queried, as described below. * pname:pQueueFamilyProperties is either `NULL` or a pointer to an array - of sname:VkQueueFamilyProperties structures. + of slink:VkQueueFamilyProperties structures. If pname:pQueueFamilyProperties is `NULL`, then the number of queue families available is returned in pname:pQueueFamilyPropertyCount. Otherwise, diff --git a/doc/specs/vulkan/chapters/drawing.txt b/doc/specs/vulkan/chapters/drawing.txt index 07516978..afd56f00 100644 --- a/doc/specs/vulkan/chapters/drawing.txt +++ b/doc/specs/vulkan/chapters/drawing.txt @@ -427,7 +427,8 @@ include::../protos/vkCmdDrawIndexed.txt[] * pname:indexCount is the number of vertices to draw. * pname:instanceCount is the number of instances to draw. * pname:firstIndex is the base index within the index buffer. - * pname:vertexOffset is the base offset within the index buffer. + * pname:vertexOffset is the value added to the vertex index before indexing + into the vertex buffer. * pname:firstInstance is the instance ID of the first instance to draw. When the command is executed, primitives are assembled using the current diff --git a/doc/specs/vulkan/chapters/extensions.txt b/doc/specs/vulkan/chapters/extensions.txt index 434e4318..802374fc 100644 --- a/doc/specs/vulkan/chapters/extensions.txt +++ b/doc/specs/vulkan/chapters/extensions.txt @@ -36,11 +36,10 @@ To query the available instance layers, call: include::../protos/vkEnumerateInstanceLayerProperties.txt[] - * pname:pPropertyCount is the number of layer properties that can be - returned in pname:pProperties. - * pname:pProperties is an array of slink:VkLayerProperties structures in - which properties of instance layers available on this implementation are - returned. + * pname:pPropertyCount is a pointer to an integer related to the number of + layer properties available or queried, as described below. + * pname:pProperties is either `NULL` or a pointer to an array of + slink:VkLayerProperties structures. include::../validity/protos/vkEnumerateInstanceLayerProperties.txt[] @@ -53,11 +52,10 @@ To query the layers available to a given physical device, call: include::../protos/vkEnumerateDeviceLayerProperties.txt[] * pname:physicalDevice is the physical device that will be queried. - * pname:pPropertyCount is the number of layer properties that can be - returned in pname:pProperties. - * pname:pProperties is an array of slink:VkLayerProperties structures in - which properties of layers available on pname:physicalDevice are - returned. + * pname:pPropertyCount is a pointer to an integer related to the number of + layer properties available or queried, as described below. + * pname:pProperties is either `NULL` or a pointer to an array of + slink:VkLayerProperties structures. include::../validity/protos/vkEnumerateDeviceLayerProperties.txt[] @@ -65,17 +63,18 @@ To enable a device layer, the name of the layer should be added to the pname:ppEnabledLayerNames member of slink:VkDeviceCreateInfo when creating a slink:VkDevice. -Both commands will return an array of sname:VkLayerProperties of the -respective instance or device layers present. Calling -fname:vkEnumerateInstanceLayerProperties or -fname:vkEnumerateDeviceLayerProperties with pname:pProperties set to `NULL` -will return the number of supported layers in the basetype:uint32_t variable -pointed to by pname:pPropertyCount. If pname:pProperties is not set to -`NULL`, the query will fill the array and update pname:pPropertyCount to -indicate the number of sname:VkLayerProperties filled in. If -pname:pPropertyCount is smaller than the number of layers available, -ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS, to -indicate that not all the available properties were returned. +For both flink:vkEnumerateInstanceLayerProperties and +flink:vkEnumerateDeviceLayerProperties, if pname:pProperties is `NULL`, then +the number of layer properties available is returned in pname:pPropertyCount. +Otherwise, pname:pPropertyCount must: point to a variable set by the user to +the number of elements in the pname:pProperties array, and on return the +variable is overwritten with the number of structures actually written to +pname:pProperties. If the value of pname:pPropertyCount is less than the +number of layer properties available, at most pname:pPropertyCount +structures will be written. If pname:pPropertyCount is smaller than the +number of layers available, ename:VK_INCOMPLETE will be returned instead of +ename:VK_SUCCESS, to indicate that not all the available properties were +returned. The definition of sname:VkLayerProperties is: @@ -123,14 +122,14 @@ include::../protos/vkEnumerateInstanceExtensionProperties.txt[] * pname:pLayerName is either `NULL` or the name of a instance layer to retrieve extensions from. - * pname:pPropertyCount is the number of extension properties that can be - returned in pname:pProperties. - * pname:pProperties is an array of slink:VkExtensionProperties structures - in which properties of instance extensions available on this - implementation are returned. + * pname:pPropertyCount is a pointer to an integer related to the number of + extension properties available or queried, as described below. + * pname:pProperties is either `NULL` or a pointer to an array of + slink:VkExtensionProperties structures. -include::../validity/protos/vkEnumerateInstanceExtensionProperties.txt[] Any -instance extensions provided by the {apiname} implementation or by +include::../validity/protos/vkEnumerateInstanceExtensionProperties.txt[] + +Any instance extensions provided by the {apiname} implementation or by implicitly enabled layers, but not by explicitly enabled layers, are returned when pname:pLayerName parameter is `NULL`. When pname:pLayerName is the name of a layer, the instance extensions provided by that layer are @@ -147,11 +146,10 @@ include::../protos/vkEnumerateDeviceExtensionProperties.txt[] * pname:physicalDevice is the physical device that will be queried. * pname:pLayerName is either `NULL` or the name of a device layer to retrieve extensions from. - * pname:pPropertyCount is the number of extension properties that can be - returned in pname:pProperties. - * pname:pProperties is an array of slink:VkExtensionProperties structures - in which properties of extensions available on pname:physicalDevice are - returned. + * pname:pPropertyCount is a pointer to an integer related to the number of + extension properties available or queried, as described below. + * pname:pProperties is either `NULL` or a pointer to an array of + slink:VkExtensionProperties structures. include::../validity/protos/vkEnumerateDeviceExtensionProperties.txt[] @@ -165,21 +163,18 @@ To enable a device layer, the name of the layer should be added to the pname:ppEnabledExtensionNames member of slink:VkDeviceCreateInfo when creating a slink:VkDevice. -Both commands return an array of sname:VkExtensionProperties -for any extensions implemented by the given pname:pLayerName. -Set pname:pLayerName to `NULL` to query for extensions not part of any -layer. Calling fname:vkEnumerateInstanceExtensionProperties or -fname:vkEnumerateDeviceExtensionProperties with pname:pProperties set to -`NULL` will return the count of extensions for the given layer in the -basetype:uint32_t variable pointed to by pname:pPropertyCount. With -pname:pProperties pointing to an array of sname:VkExtensionProperties, -fname:vkEnumerateInstanceExtensionProperties -and fname:vkEnumerateDeviceExtensionProperties will fill the array and -update the count to indicate the number of sname:VkExtensionProperties -filled in. If the provided count is smaller than the number of extensions -available, ename:VK_INCOMPLETE will be returned -instead of ename:VK_SUCCESS to indicate that not all the -available properties were returned. +For both flink:vkEnumerateInstanceExtensionProperties and +flink:vkEnumerateDeviceExtensionProperties, if pname:pProperties is `NULL`, +then the number of extensions properties available is returned in +pname:pPropertyCount. Otherwise, pname:pPropertyCount must: point to a +variable set by the user to the number of elements in the pname:pProperties +array, and on return the variable is overwritten with the number of +structures actually written to pname:pProperties. If the value of +pname:pPropertyCount is less than the number of extension properties +available, at most pname:pPropertyCount structures will be written. If +pname:pPropertyCount is smaller than the number of extensions available, +ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS, to +indicate that not all the available properties were returned. The definition of sname:VkExtensionProperties is: diff --git a/doc/specs/vulkan/chapters/features.txt b/doc/specs/vulkan/chapters/features.txt index b1f1ce57..55723efc 100644 --- a/doc/specs/vulkan/chapters/features.txt +++ b/doc/specs/vulkan/chapters/features.txt @@ -979,7 +979,7 @@ different equations in the spec). subpixel precision that floating-point viewport bounds are interpreted at is given by this limit. * [[features-limits-minMemoryMapAlignment]] pname:minMemoryMapAlignment is - the minimum required alignment, in bytes, of host-visible memory + the minimum required alignment, in bytes, of host visible memory allocations within the host address space. When mapping a memory allocation with flink:vkMapMemory, subtracting pname:offset bytes from the returned pointer will always produce an integer multiple of this diff --git a/doc/specs/vulkan/chapters/fundamentals.txt b/doc/specs/vulkan/chapters/fundamentals.txt index b3f829fa..a8df7c47 100644 --- a/doc/specs/vulkan/chapters/fundamentals.txt +++ b/doc/specs/vulkan/chapters/fundamentals.txt @@ -42,12 +42,16 @@ advertise one or more heaps, representing different areas of memory. Memory heaps are either device local or host local, but are always visible to the device. Further detail about memory heaps is exposed via memory types available on that heap. Examples of memory areas that may: be available on -an implementation include _device local_ (memory that is physically -connected to the device), _device local, host visible_ (device local memory -that is visible to the host) and _host local, host visible_ (memory that is -local to the host and visible to the device and host). On other -architectures, there may: only be a single heap that can: be used for any -purpose. +an implementation include: + + * _device local_ is memory that is physically connected to the device. + * _device local, host visible_ is device local memory that is visible to + the host. + * _host local, host visible_ is memory that is local to the host and + visible to the device and host. + +On other architectures, there may: only be a single heap that can: be used +for any purpose. A {apiname} application controls a set of devices through the submission of command buffers which have recorded device commands issued via {apiname} @@ -73,8 +77,9 @@ the responsibility of the application. {apiname} queues provide an interface to the execution engines of a device. Commands are recorded into command buffers ahead of execution time. These command buffers are then submitted to queues for execution. Command -buffers submitted to a single queue play back the commands in the order -they were recorded, both within and across command buffer boundaries. +buffers submitted to a single queue are played back in the order they were +submitted, and commands within each buffer are played back in the order they +were recorded. Work performed by those commands respects the ordering guarantees provided by explicit and implicit dependencies, as described below. Work submitted to separate queues may: execute in any relative order unless otherwise @@ -206,7 +211,7 @@ There are two classes of handles, dispatchable and non-dispatchable. _Dispatchable_ handle types are a pointer to an opaque type. This pointer may: be used by layers as part of intercepting API commands, and thus each API command takes a dispatchable type as its first parameter. Each object of -a dispatchable type has a unique handle value. +a dispatchable type must: have a unique handle value during its lifetime. _Non-dispatchable_ handle types are a 64-bit integer type whose meaning is implementation-dependent, and may: encode object information directly in the @@ -301,7 +306,7 @@ reset, then it can: be used as if it never used the freed object. An exception to this is when there is a parent/child relationship between objects. In this case, the application mustnot: destroy a parent object before its children, except when the parent is explicitly defined to free -its children when it is destroyed (i.e. for pool objects, as defined below). +its children when it is destroyed (e.g. for pool objects, as defined below). sname:VkCommandPool objects are parents of sname:VkCommandBuffer objects. sname:VkDescriptorPool objects are parents of sname:VkDescriptorSet objects. @@ -520,19 +525,19 @@ by the command, and all fundamental types accessed through the pointer (e.g. as elements of an array or as members of a structure) satisfy the alignment requirements of the host processor. -Any parameter that is an enumerant must: be a valid value for that enumerant -type. A value is valid for an enumerant if: +Any parameter of an enumerated type must: be a valid enumerant for that +type. A enumerant is valid if: - * The value is defined as part of the enumerant type. - * The value is not one of the special values defined for an enumerant - type, which are suffixed with etext:_BEGIN_RANGE, etext:_END_RANGE, - etext:_RANGE_SIZE or etext:_MAX_ENUM. + * The enumerant is defined as part of the enumerated type. + * The enumerant is not one of the special values defined for the + enumerated type, which are suffixed with etext:_BEGIN_RANGE, + etext:_END_RANGE, etext:_RANGE_SIZE or etext:_MAX_ENUM. Any parameter that is a flag value must: be a valid combination of bit flags. A valid combination is either zero or the bitwise OR of valid bit flags. A bit flag is valid if: - * The value is defined as part of the bits type, where the bits type is + * The flag is defined as part of the bits type, where the bits type is obtained by taking the flag type and replacing the trailing etext:Flags with etext:FlagBits. For example, a flag value of type elink:VkColorComponentFlags must: contain only values selected from the diff --git a/doc/specs/vulkan/chapters/introduction.txt b/doc/specs/vulkan/chapters/introduction.txt index 9afa8afc..95ab5d94 100644 --- a/doc/specs/vulkan/chapters/introduction.txt +++ b/doc/specs/vulkan/chapters/introduction.txt @@ -94,7 +94,10 @@ http://github.com/KhronosGroup/Vulkan-Docs Please tag issues with appropriate labels, such as ``Specification'', ``Ref Pages'' or ``Registry'', to help us triage and assign them -appropriately. +appropriately. Unfortunately, Github does not currently let users who do not +have write access to the repository set Github labels on issues. In the +meantime, they can be added to the title line of the issue set in brackets, +e.g. ''[Specification]''. [[introduction-terminology]] diff --git a/doc/specs/vulkan/chapters/renderpass.txt b/doc/specs/vulkan/chapters/renderpass.txt index 6d059148..5d6a90eb 100644 --- a/doc/specs/vulkan/chapters/renderpass.txt +++ b/doc/specs/vulkan/chapters/renderpass.txt @@ -817,7 +817,7 @@ include::../protos/vkCmdNextSubpass.txt[] * pname:commandBuffer is the command buffer in which to record the command. - * pname:contents specifies how the commands in the first subpass will be + * pname:contents specifies how the commands in the next subpass will be provided, in the same fashion as the corresponding parameter of flink:vkCmdBeginRenderPass. diff --git a/doc/specs/vulkan/chapters/samplers.txt b/doc/specs/vulkan/chapters/samplers.txt index b9c1c737..3d334e53 100644 --- a/doc/specs/vulkan/chapters/samplers.txt +++ b/doc/specs/vulkan/chapters/samplers.txt @@ -42,7 +42,7 @@ include::../enums/VkFilter.txt[] * pname:minFilter is the minification filter to apply to lookups, and is of type elink:VkFilter. * pname:mipmapMode is the mipmap filter to apply to lookups as described - in the <> section, and is of + in the <> section, and is of type: + -- @@ -61,7 +61,7 @@ include::../enums/VkSamplerMipmapMode.txt[] Level-of-Detail Operation>> section. * [[samplers-maxAnisotropy]] pname:anisotropyEnable is ename:VK_TRUE to enable anisotropic filtering, as described in the - <> + <> section, or ename:VK_FALSE otherwise. * pname:maxAnisotropy is the anisotropy value clamp. * pname:compareEnable is ename:VK_TRUE to enable comparison against a @@ -69,14 +69,14 @@ include::../enums/VkSamplerMipmapMode.txt[] ** Note: Some implementations will default to shader state if this member does not match. * pname:compareOp is the comparison function to apply to fetched data - before filtering as described in the <> section. See elink:VkCompareOp. * pname:minLod and pname:maxLod are the values used to clamp the computed level-of-detail value, as described in the <> section. pname:maxLod must: be greater than or equal to pname:minLod. * pname:borderColor is the predefined border color to use, as described - in the <> + in the <> section, and is of type: + -- @@ -146,7 +146,7 @@ include::../enums/VkSamplerAddressMode.txt[] These values control the behavior of sampling with coordinates outside the range [0,1] for the respective u, v, or w coordinate as defined in the -<> section. +<> section. * ename:VK_SAMPLER_ADDRESS_MODE_REPEAT indicates that the repeat wrap mode will be used. @@ -156,8 +156,9 @@ range [0,1] for the respective u, v, or w coordinate as defined in the edge wrap mode will be used. * ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER indicates that the clamp to border wrap mode will be used. - * ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE indicates that the - mirror clamp to edge wrap mode will be used. + * ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE indicates that + the mirror clamp to edge wrap mode will be used. This is only valid + if the VK_KHR_mirror_clamp_to_edge extension is enabled. The maximum number of sampler objects which can: be simultaneously created on a device is implementation-dependent and specified by the diff --git a/doc/specs/vulkan/chapters/sparsemem.txt b/doc/specs/vulkan/chapters/sparsemem.txt index b53e333f..e4b04d13 100644 --- a/doc/specs/vulkan/chapters/sparsemem.txt +++ b/doc/specs/vulkan/chapters/sparsemem.txt @@ -751,25 +751,24 @@ include::../protos/vkGetPhysicalDeviceSparseImageFormatProperties.txt[] elink:VkSampleCountFlagBits. * pname:usage is a bitfield describing the intended usage of the image. * pname:tiling is the tiling arrangement of the data elements in memory. - * pname:pPropertyCount points to a variable specifying the length of the - pname:pProperties array, or a variable receiving the expected size of - the array if pname:pProperties is `NULL`. - * pname:pProperties is an array of pname:pPropertyCount - slink:VkSparseImageFormatProperties format property structures in which - values are returned. + * pname:pPropertyCount is a pointer to an integer related to the number of + sparse format properties available or queried, as described below. + * pname:pProperties is either `NULL` or a pointer to an array of + slink:VkSparseImageFormatProperties structures. + +If pname:pProperties is `NULL`, then the number of sparse format properties +available is returned in pname:pPropertyCount. Otherwise, +pname:pPropertyCount must: point to a variable set by the user to the number +of elements in the pname:pProperties array, and on return the variable is +overwritten with the number of structures actually written to +pname:pProperties. If the value of pname:pPropertyCount is less than the +number of sparse format properties available, at most pname:pPropertyCount +structures will be written, and ename:VK_INCOMPLETE will be returned instead +of ename:VK_SUCCESS to indicate that not all the available values were +returned. include::../validity/protos/vkGetPhysicalDeviceSparseImageFormatProperties.txt[] -If pname:pProperties is `NULL`, then pname:pPropertyCount will be updated -with the required size of the array pointed by pname:pProperties. If -pname:pProperties is not `NULL`, then pname:pPropertyCount must: hold the -size of the array pointed to by pname:pProperties, and is overwritten with -the number of sname:VkSparseImageFormatProperties structures actually -written to pname:pProperties. If pname:pPropertyCount is smaller than the -number of sparse image properties for the given set of parameters, -ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS to indicate -that not all the available values were returned. - If ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT is not supported for the given arguments, pname:pPropertyCount will be set to zero upon return, and no data will be written to pname:pProperties. @@ -892,33 +891,31 @@ include::../protos/vkGetImageSparseMemoryRequirements.txt[] * pname:device is the logical device that owns the image. * pname:image is the sname:VkImage object to get the memory requirements for. - * pname:pSparseMemoryRequirementCount points to a variable specifying the - length of the pname:pSparseMemoryRequirements array, or a variable - receiving the expected size of the array if - pname:pSparseMemoryRequirements is `NULL`. - * pname:pSparseMemoryRequirements is an array of - pname:pSparseMemoryRequirementCount - slink:VkSparseImageMemoryRequirements structures to be written by the - API. + * pname:pSparseMemoryRequirementCount is a pointer to an integer related + to the number of sparse memory requirements available or queried, as + described below. + * pname:pSparseMemoryRequirements is either `NULL` or a pointer to an + array of sname:VkSparseImageMemoryRequirements structures. -include::../validity/protos/vkGetImageSparseMemoryRequirements.txt[] - -If pname:pSparseMemoryRequirements is `NULL`, then -pname:pSparseMemoryRequirementCount will be updated with the required size -of the array pointed by pname:pProperties. If -pname:pSparseMemoryRequirements is not `NULL`, then -pname:pSparseMemoryRequirementCount must: hold the size of the array pointed -to by pname:pSparseMemoryRequirements, and is overwritten with the number of -sname:VkSparseImageMemoryRequirements structures actually written to -pname:pSparseMemoryRequirements. If pname:pSparseMemoryRequirementCount is -smaller than the number of sparse memory requirements for the given set of -parameters, ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS -to indicate that not all the available values were returned. +If pname:pSparseMemoryRequirements is `NULL`, then the number of sparse +memory requirements available is returned in +pname:pSparseMemoryRequirementCount. Otherwise, +pname:pSparseMemoryRequirementCount must: point to a variable set by the +user to the number of elements in the pname:pSparseMemoryRequirements array, +and on return the variable is overwritten with the number of structures +actually written to pname:pSparseMemoryRequirements. If the value of +pname:pSparseMemoryRequirementCount is less than the number of sparse memory +requirements available, at most pname:pSparseMemoryRequirementCount +structures will be written, and ename:VK_INCOMPLETE will be returned instead +of ename:VK_SUCCESS to indicate that not all the available values were +returned. If the image was not created with ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT then pname:pSparseMemoryRequirementCount will be set to zero and pname:pSparseMemoryRequirements will not be written to. +include::../validity/protos/vkGetImageSparseMemoryRequirements.txt[] + [NOTE] .Note ==== @@ -1375,7 +1372,7 @@ vkGetImageSparseMemoryRequirements( NULL); pSparseReqs = (VkSparseImageMemoryRequirements*) - malloc(reqCount * sizeof(VkSparseImageMemoryRequirements)); + malloc(sparseRequirementsCount * sizeof(VkSparseImageMemoryRequirements)); vkGetImageSparseMemoryRequirements( device, @@ -1467,6 +1464,8 @@ for (uint32_t i = 0; i < sparseRequirementsCount; ++i) pBind->flags = 0; } } + + free(pSparseReqs); } const VkSparseImageOpaqueMemoryBindInfo opaqueBindInfo = diff --git a/doc/specs/vulkan/chapters/synchronization.txt b/doc/specs/vulkan/chapters/synchronization.txt index cdf7d644..f19d88db 100644 --- a/doc/specs/vulkan/chapters/synchronization.txt +++ b/doc/specs/vulkan/chapters/synchronization.txt @@ -1226,7 +1226,7 @@ are <>. When submitting batches of command buffers to a queue via flink:vkQueueSubmit, it is guaranteed that: - * Host writes to mappable device memory that occured before the call to + * Host writes to mappable device memory that occurred before the call to fname:vkQueueSubmit are visible to the command buffers in that submission, if the device memory is coherent or if the memory range was flushed with flink:vkFlushMappedMemoryRanges. diff --git a/doc/specs/vulkan/chapters/vertexpostproc.txt b/doc/specs/vulkan/chapters/vertexpostproc.txt index 0abae71a..2ad2b538 100644 --- a/doc/specs/vulkan/chapters/vertexpostproc.txt +++ b/doc/specs/vulkan/chapters/vertexpostproc.txt @@ -236,7 +236,7 @@ rasterized (see <> and <>), and no interpolation is performed. The output value latexmath:[${\textbf c}$] is taken from either latexmath:[${\textbf c}_1$] or latexmath:[${\textbf -c}_2$], since flatshading has already occured and the two values are +c}_2$], since flatshading has already occurred and the two values are identical. diff --git a/doc/specs/vulkan/validity/protos/vkCmdBlitImage.txt b/doc/specs/vulkan/validity/protos/vkCmdBlitImage.txt index d42f8f44..dd01d0ff 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdBlitImage.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdBlitImage.txt @@ -23,13 +23,13 @@ endif::doctype-manpage[] * The destination region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage * The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory * pname:srcImage must: use a format that supports ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT, which is indicated by sname:VkFormatProperties::pname:linearTilingFeatures (for linear tiled images) or sname:VkFormatProperties::pname:optimalTilingFeatures (for optimally tiled images) - as returned by fname:vkGetPhysicalDeviceFormatProperties -* pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag +* pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag * pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice -* pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL +* pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL * pname:dstImage must: use a format that supports ename:VK_FORMAT_FEATURE_BLIT_DST_BIT, which is indicated by sname:VkFormatProperties::pname:linearTilingFeatures (for linear tiled images) or sname:VkFormatProperties::pname:optimalTilingFeatures (for optimally tiled images) - as returned by fname:vkGetPhysicalDeviceFormatProperties -* pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag +* pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag * pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice -* pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL +* pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL * The sample count of pname:srcImage and pname:dstImage must: both be equal to ename:VK_SAMPLE_COUNT_1_BIT * If either of pname:srcImage or pname:dstImage was created with a signed integer elink:VkFormat, the other must: also have been created with a signed integer elink:VkFormat * If either of pname:srcImage or pname:dstImage was created with an unsigned integer elink:VkFormat, the other must: also have been created with an unsigned integer elink:VkFormat diff --git a/doc/specs/vulkan/validity/protos/vkCmdClearColorImage.txt b/doc/specs/vulkan/validity/protos/vkCmdClearColorImage.txt index 2c137663..7a97fb25 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdClearColorImage.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdClearColorImage.txt @@ -17,9 +17,9 @@ endif::doctype-manpage[] * This command must: only be called outside of a render pass instance * The value of pname:rangeCount must: be greater than `0` * Each of pname:commandBuffer and pname:image must: have been created, allocated or retrieved from the same sname:VkDevice -* pname:image must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag +* pname:image must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag * pname:imageLayout must: specify the layout of the subresource ranges of pname:image specified in pname:pRanges at the time this command is executed on a sname:VkDevice -* pname:imageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL +* pname:imageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL * The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image ifndef::doctype-manpage[] ******************************************************************************** diff --git a/doc/specs/vulkan/validity/protos/vkCmdClearDepthStencilImage.txt b/doc/specs/vulkan/validity/protos/vkCmdClearDepthStencilImage.txt index 64dcab46..399f131f 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdClearDepthStencilImage.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdClearDepthStencilImage.txt @@ -17,9 +17,9 @@ endif::doctype-manpage[] * This command must: only be called outside of a render pass instance * The value of pname:rangeCount must: be greater than `0` * Each of pname:commandBuffer and pname:image must: have been created, allocated or retrieved from the same sname:VkDevice -* pname:image must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag +* pname:image must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag * pname:imageLayout must: specify the layout of the subresource ranges of pname:image specified in pname:pRanges at the time this command is executed on a sname:VkDevice -* pname:imageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL +* pname:imageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL * The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image ifndef::doctype-manpage[] ******************************************************************************** diff --git a/doc/specs/vulkan/validity/protos/vkCmdCopyBuffer.txt b/doc/specs/vulkan/validity/protos/vkCmdCopyBuffer.txt index 666bb9b5..a3d2a48d 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdCopyBuffer.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdCopyBuffer.txt @@ -19,8 +19,8 @@ endif::doctype-manpage[] * The sum of the pname:srcOffset and pname:copySize members of a given element of pname:pRegions must: be less than or equal to the size of pname:srcBuffer * The sum of the pname:dstOffset and pname:copySize members of a given element of pname:pRegions must: be less than or equal to the size of pname:dstBuffer * The union of the source regions, and the union of the destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory -* pname:srcBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag -* pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag +* pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag +* pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag ifndef::doctype-manpage[] ******************************************************************************** endif::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/protos/vkCmdCopyBufferToImage.txt b/doc/specs/vulkan/validity/protos/vkCmdCopyBufferToImage.txt index ccc35e2b..59758999 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdCopyBufferToImage.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdCopyBufferToImage.txt @@ -20,11 +20,11 @@ endif::doctype-manpage[] * The buffer region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcBuffer * The image region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage * The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory -* pname:srcBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag -* pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag +* pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag +* pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag * pname:dstImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT * pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice -* pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL +* pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL ifndef::doctype-manpage[] ******************************************************************************** endif::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/protos/vkCmdCopyImage.txt b/doc/specs/vulkan/validity/protos/vkCmdCopyImage.txt index 3566c7f8..5e895f96 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdCopyImage.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdCopyImage.txt @@ -21,12 +21,12 @@ endif::doctype-manpage[] * The source region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcImage * The destination region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage * The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory -* pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag +* pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag * pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice -* pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL -* pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag +* pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL +* pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag * pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice -* pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL +* pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL * The elink:VkFormat of each of pname:srcImage and pname:dstImage must: be compatible, as defined <> * The sample count of pname:srcImage and pname:dstImage must: match ifndef::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/protos/vkCmdCopyImageToBuffer.txt b/doc/specs/vulkan/validity/protos/vkCmdCopyImageToBuffer.txt index a1cf40c8..e77a21ca 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdCopyImageToBuffer.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdCopyImageToBuffer.txt @@ -20,11 +20,11 @@ endif::doctype-manpage[] * The image region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcImage * The buffer region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstBuffer * The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory -* pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag +* pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag * pname:srcImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT * pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice -* pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL -* pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag +* pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL +* pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag ifndef::doctype-manpage[] ******************************************************************************** endif::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/protos/vkCmdExecuteCommands.txt b/doc/specs/vulkan/validity/protos/vkCmdExecuteCommands.txt index 0e2e8a45..13939a5a 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdExecuteCommands.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdExecuteCommands.txt @@ -14,8 +14,8 @@ endif::doctype-manpage[] * pname:commandBuffer must: be a primary sname:VkCommandBuffer * The value of pname:commandBufferCount must: be greater than `0` * Each of pname:commandBuffer and the elements of pname:pCommandBuffers must: have been created, allocated or retrieved from the same sname:VkDevice -* pname:commandBuffer must: have been created with a pname:level value of VK_COMMAND_BUFFER_LEVEL_PRIMARY -* Any given element of pname:pCommandBuffers must: have been created with a pname:level value of VK_COMMAND_BUFFER_LEVEL_SECONDARY +* pname:commandBuffer must: have been created with a pname:level value of ename:VK_COMMAND_BUFFER_LEVEL_PRIMARY +* Any given element of pname:pCommandBuffers must: have been created with a pname:level value of ename:VK_COMMAND_BUFFER_LEVEL_SECONDARY * Any given element of pname:pCommandBuffers mustnot: be already pending execution in pname:commandBuffer, or appear twice in pname:pCommandBuffers, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag * Any given element of pname:pCommandBuffers mustnot: be already pending execution in any other sname:VkCommandBuffer, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag * Any given element of pname:pCommandBuffers must: be in the executable state diff --git a/doc/specs/vulkan/validity/protos/vkCmdFillBuffer.txt b/doc/specs/vulkan/validity/protos/vkCmdFillBuffer.txt index 478a5abe..2f8615db 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdFillBuffer.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdFillBuffer.txt @@ -14,7 +14,7 @@ endif::doctype-manpage[] * This command must: only be called outside of a render pass instance * Each of pname:commandBuffer and pname:dstBuffer must: have been created, allocated or retrieved from the same sname:VkDevice * If pname:size is not equal to ename:VK_WHOLE_SIZE, the sum of pname:dstOffset and pname:size must: be less than or equal to the size of pname:dstBuffer -* pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag +* pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag * pname:dstOffset must: be a multiple of `4` * If pname:size is not equal to ename:VK_WHOLE_SIZE, pname:size must: be a multiple of `4` ifndef::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/protos/vkCmdPipelineBarrier.txt b/doc/specs/vulkan/validity/protos/vkCmdPipelineBarrier.txt index 15b2f1c8..c7ee7408 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdPipelineBarrier.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdPipelineBarrier.txt @@ -18,10 +18,10 @@ endif::doctype-manpage[] * If pname:imageMemoryBarrierCount is not `0`, pname:pImageMemoryBarriers must: be a pointer to an array of pname:imageMemoryBarrierCount valid sname:VkImageMemoryBarrier structures * pname:commandBuffer must: be in the recording state * The sname:VkCommandPool that pname:commandBuffer was allocated from must: support transfer, graphics or compute operations -* If the <> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT -* If the <> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT -* If the <> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT -* If the <> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +* If the <> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +* If the <> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +* If the <> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +* If the <> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT * If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass must: declare at least one self-dependency from the current subpass to itself - see <> ifndef::doctype-manpage[] ******************************************************************************** diff --git a/doc/specs/vulkan/validity/protos/vkCmdResetEvent.txt b/doc/specs/vulkan/validity/protos/vkCmdResetEvent.txt index ff9e54c9..948aad98 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdResetEvent.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdResetEvent.txt @@ -15,8 +15,8 @@ endif::doctype-manpage[] * The sname:VkCommandPool that pname:commandBuffer was allocated from must: support graphics or compute operations * This command must: only be called outside of a render pass instance * Each of pname:commandBuffer and pname:event must: have been created, allocated or retrieved from the same sname:VkDevice -* If the <> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT -* If the <> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +* If the <> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +* If the <> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT ifndef::doctype-manpage[] ******************************************************************************** endif::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/protos/vkCmdResolveImage.txt b/doc/specs/vulkan/validity/protos/vkCmdResolveImage.txt index 8457a8b6..3221380b 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdResolveImage.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdResolveImage.txt @@ -24,9 +24,9 @@ endif::doctype-manpage[] * pname:srcImage must: have a sample count equal to any valid sample count value other than ename:VK_SAMPLE_COUNT_1_BIT * pname:dstImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT * pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice -* pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL +* pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL * pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice -* pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL +* pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL * If pname:dstImage was created with pname:tiling equal to ename:VK_IMAGE_TILING_LINEAR, pname:dstImage must: have been created with a pname:format that supports being a color attachment, as specified by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in sname:VkFormatProperties::pname:linearTilingFeatures returned by fname:vkGetPhysicalDeviceFormatProperties * If pname:dstImage was created with pname:tiling equal to ename:VK_IMAGE_TILING_OPTIMAL, pname:dstImage must: have been created with a pname:format that supports being a color attachment, as specified by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in sname:VkFormatProperties::pname:optimalTilingFeatures returned by fname:vkGetPhysicalDeviceFormatProperties ifndef::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/protos/vkCmdSetEvent.txt b/doc/specs/vulkan/validity/protos/vkCmdSetEvent.txt index ff9e54c9..948aad98 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdSetEvent.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdSetEvent.txt @@ -15,8 +15,8 @@ endif::doctype-manpage[] * The sname:VkCommandPool that pname:commandBuffer was allocated from must: support graphics or compute operations * This command must: only be called outside of a render pass instance * Each of pname:commandBuffer and pname:event must: have been created, allocated or retrieved from the same sname:VkDevice -* If the <> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT -* If the <> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +* If the <> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +* If the <> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT ifndef::doctype-manpage[] ******************************************************************************** endif::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/protos/vkCmdUpdateBuffer.txt b/doc/specs/vulkan/validity/protos/vkCmdUpdateBuffer.txt index be252789..780dc0d3 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdUpdateBuffer.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdUpdateBuffer.txt @@ -9,16 +9,16 @@ Valid Usage endif::doctype-manpage[] * pname:commandBuffer must: be a valid sname:VkCommandBuffer handle * pname:dstBuffer must: be a valid sname:VkBuffer handle -* pname:pData must: be a pointer to an array of pname:dataSize/4 basetype:uint32_t values +* pname:pData must: be a pointer to an array of latexmath:[$dataSize \over 4$] basetype:uint32_t values * pname:commandBuffer must: be in the recording state * The sname:VkCommandPool that pname:commandBuffer was allocated from must: support transfer, graphics or compute operations * This command must: only be called outside of a render pass instance * Each of pname:commandBuffer and pname:dstBuffer must: have been created, allocated or retrieved from the same sname:VkDevice * The sum of pname:dstOffset and pname:dataSize must: be less than or equal to the size of pname:dstBuffer -* pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag +* pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag * The value of pname:dstOffset must: be a multiple of `4` * The value of pname:dataSize must: be greater than `0` -* The value of pname:dataSize must: be less than `65536` +* The value of pname:dataSize must: be less than or equal to `65536` * The value of pname:dataSize must: be a multiple of `4` ifndef::doctype-manpage[] ******************************************************************************** diff --git a/doc/specs/vulkan/validity/protos/vkCmdWaitEvents.txt b/doc/specs/vulkan/validity/protos/vkCmdWaitEvents.txt index b44f4af9..73f22277 100644 --- a/doc/specs/vulkan/validity/protos/vkCmdWaitEvents.txt +++ b/doc/specs/vulkan/validity/protos/vkCmdWaitEvents.txt @@ -20,11 +20,11 @@ endif::doctype-manpage[] * The sname:VkCommandPool that pname:commandBuffer was allocated from must: support graphics or compute operations * The value of pname:eventCount must: be greater than `0` * Each of pname:commandBuffer and the elements of pname:pEvents must: have been created, allocated or retrieved from the same sname:VkDevice -* pname:srcStageMask must: be the bitwise OR of the pname:stageMask parameter used in previous calls to fname:vkCmdSetEvent with any of the members of pname:pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the members of pname:pEvents was set using fname:vkSetEvent -* If the <> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT -* If the <> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT -* If the <> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT -* If the <> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +* pname:srcStageMask must: be the bitwise OR of the pname:stageMask parameter used in previous calls to fname:vkCmdSetEvent with any of the members of pname:pEvents and ename:VK_PIPELINE_STAGE_HOST_BIT if any of the members of pname:pEvents was set using fname:vkSetEvent +* If the <> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +* If the <> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +* If the <> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +* If the <> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT * If pname:pEvents includes one or more events that will be signaled by fname:vkSetEvent after pname:commandBuffer has been submitted to a queue, then fname:vkCmdWaitEvents mustnot: be called inside a render pass instance ifndef::doctype-manpage[] ******************************************************************************** diff --git a/doc/specs/vulkan/validity/protos/vkGetImageSparseMemoryRequirements.txt b/doc/specs/vulkan/validity/protos/vkGetImageSparseMemoryRequirements.txt index ed0430ad..f9dd4bb3 100644 --- a/doc/specs/vulkan/validity/protos/vkGetImageSparseMemoryRequirements.txt +++ b/doc/specs/vulkan/validity/protos/vkGetImageSparseMemoryRequirements.txt @@ -10,8 +10,7 @@ endif::doctype-manpage[] * pname:device must: be a valid sname:VkDevice handle * pname:image must: be a valid sname:VkImage handle * pname:pSparseMemoryRequirementCount must: be a pointer to a basetype:uint32_t value -* If pname:pSparseMemoryRequirements is not `NULL`, pname:pSparseMemoryRequirements must: be a pointer to an array of pname:pSparseMemoryRequirementCount sname:VkSparseImageMemoryRequirements structures -* If pname:pSparseMemoryRequirements is not `NULL`, the value referenced by pname:pSparseMemoryRequirementCount must: be greater than `0` +* If the value referenced by pname:pSparseMemoryRequirementCount is not `0`, and pname:pSparseMemoryRequirements is not `NULL`, pname:pSparseMemoryRequirements must: be a pointer to an array of pname:pSparseMemoryRequirementCount sname:VkSparseImageMemoryRequirements structures * pname:image must: have been created, allocated or retrieved from pname:device * Each of pname:device and pname:image must: have been created, allocated or retrieved from the same sname:VkPhysicalDevice * pname:image must: have been created with the ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag diff --git a/doc/specs/vulkan/validity/structs/VkBufferMemoryBarrier.txt b/doc/specs/vulkan/validity/structs/VkBufferMemoryBarrier.txt index 6cb292ad..1b5764b0 100644 --- a/doc/specs/vulkan/validity/structs/VkBufferMemoryBarrier.txt +++ b/doc/specs/vulkan/validity/structs/VkBufferMemoryBarrier.txt @@ -14,8 +14,8 @@ endif::doctype-manpage[] * pname:buffer must: be a valid sname:VkBuffer handle * The value of pname:offset must: be less than the size of pname:buffer * The sum of pname:offset and pname:size must: be less than or equal to than the size of pname:buffer -* If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be VK_QUEUE_FAMILY_IGNORED -* If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <>) +* If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be ename:VK_QUEUE_FAMILY_IGNORED +* If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be ename:VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <>) * If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex are valid queue families, at least one of them must: be the same as the family of the queue that will execute this barrier ifndef::doctype-manpage[] ******************************************************************************** diff --git a/doc/specs/vulkan/validity/structs/VkImageCreateInfo.txt b/doc/specs/vulkan/validity/structs/VkImageCreateInfo.txt index 1566ee67..c61ee3e6 100644 --- a/doc/specs/vulkan/validity/structs/VkImageCreateInfo.txt +++ b/doc/specs/vulkan/validity/structs/VkImageCreateInfo.txt @@ -47,20 +47,20 @@ endif::doctype-manpage[] * If the <> feature is not enabled, pname:format mustnot: be ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK, ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK, ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK, ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK, ename:VK_FORMAT_BC2_UNORM_BLOCK, ename:VK_FORMAT_BC2_SRGB_BLOCK, ename:VK_FORMAT_BC3_UNORM_BLOCK, ename:VK_FORMAT_BC3_SRGB_BLOCK, ename:VK_FORMAT_BC4_UNORM_BLOCK, ename:VK_FORMAT_BC4_SNORM_BLOCK, ename:VK_FORMAT_BC5_UNORM_BLOCK, ename:VK_FORMAT_BC5_SNORM_BLOCK, ename:VK_FORMAT_BC6H_UFLOAT_BLOCK, ename:VK_FORMAT_BC6H_SFLOAT_BLOCK, ename:VK_FORMAT_BC7_UNORM_BLOCK, or ename:VK_FORMAT_BC7_SRGB_BLOCK * If the <> feature is not enabled, and pname:usage contains ename:VK_IMAGE_USAGE_STORAGE_BIT, pname:samples must: be ename:VK_SAMPLE_COUNT_1_BIT * If the <> feature is not enabled, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT -* If the <> feature is not enabled, and pname:imageType is VK_IMAGE_TYPE_2D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -* If the <> feature is not enabled, and pname:imageType is VK_IMAGE_TYPE_3D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -* If the <> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_2_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -* If the <> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_4_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -* If the <> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_8_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -* If the <> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_16_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT -* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT -* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT -* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT -* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT -* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT -* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT -* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT -* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT +* If the <> feature is not enabled, and pname:imageType is ename:VK_IMAGE_TYPE_2D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT +* If the <> feature is not enabled, and pname:imageType is ename:VK_IMAGE_TYPE_3D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT +* If the <> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_2_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT +* If the <> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_4_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT +* If the <> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_8_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT +* If the <> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_16_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT +* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT +* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT +* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT +* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT +* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT +* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT +* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT +* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT * If pname:flags contains ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must: also contain at least one of ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT or ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT ifndef::doctype-manpage[] ******************************************************************************** diff --git a/doc/specs/vulkan/validity/structs/VkImageMemoryBarrier.txt b/doc/specs/vulkan/validity/structs/VkImageMemoryBarrier.txt index 27a6b60c..d8126ef9 100644 --- a/doc/specs/vulkan/validity/structs/VkImageMemoryBarrier.txt +++ b/doc/specs/vulkan/validity/structs/VkImageMemoryBarrier.txt @@ -17,8 +17,8 @@ endif::doctype-manpage[] * pname:subresourceRange must: be a valid sname:VkImageSubresourceRange structure * pname:oldLayout must: be ename:VK_IMAGE_LAYOUT_UNDEFINED, ename:VK_IMAGE_LAYOUT_PREINITIALIZED or the current layout of the image region affected by the barrier * pname:newLayout mustnot: be ename:VK_IMAGE_LAYOUT_UNDEFINED or ename:VK_IMAGE_LAYOUT_PREINITIALIZED -* If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be VK_QUEUE_FAMILY_IGNORED -* If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <>) +* If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be ename:VK_QUEUE_FAMILY_IGNORED +* If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be ename:VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <>) * If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex are valid queue families, at least one of them must: be the same as the family of the queue that will execute this barrier * pname:subresourceRange must: be a valid subresource range for the image (see <>) * If pname:image has a depth/stencil format with both depth and stencil components, then pname:aspectMask member of pname:subresourceRange must: include both ename:VK_IMAGE_ASPECT_DEPTH_BIT and ename:VK_IMAGE_ASPECT_STENCIL_BIT diff --git a/doc/specs/vulkan/validity/structs/VkPipelineColorBlendAttachmentState.txt b/doc/specs/vulkan/validity/structs/VkPipelineColorBlendAttachmentState.txt index 00e47d6c..6fa92884 100644 --- a/doc/specs/vulkan/validity/structs/VkPipelineColorBlendAttachmentState.txt +++ b/doc/specs/vulkan/validity/structs/VkPipelineColorBlendAttachmentState.txt @@ -14,10 +14,10 @@ endif::doctype-manpage[] * pname:dstAlphaBlendFactor must: be a valid elink:VkBlendFactor value * pname:alphaBlendOp must: be a valid elink:VkBlendOp value * pname:colorWriteMask must: be a valid combination of elink:VkColorComponentFlagBits values -* If the <> feature is not enabled, pname:srcColorBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA -* If the <> feature is not enabled, pname:dstColorBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA -* If the <> feature is not enabled, pname:srcAlphaBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA -* If the <> feature is not enabled, pname:dstAlphaBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA +* If the <> feature is not enabled, pname:srcColorBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA +* If the <> feature is not enabled, pname:dstColorBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA +* If the <> feature is not enabled, pname:srcAlphaBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA +* If the <> feature is not enabled, pname:dstAlphaBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA ifndef::doctype-manpage[] ******************************************************************************** endif::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/structs/VkPipelineInputAssemblyStateCreateInfo.txt b/doc/specs/vulkan/validity/structs/VkPipelineInputAssemblyStateCreateInfo.txt index af86a23f..4ef47644 100644 --- a/doc/specs/vulkan/validity/structs/VkPipelineInputAssemblyStateCreateInfo.txt +++ b/doc/specs/vulkan/validity/structs/VkPipelineInputAssemblyStateCreateInfo.txt @@ -13,7 +13,7 @@ endif::doctype-manpage[] * pname:topology must: be a valid elink:VkPrimitiveTopology value * If pname:topology is ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST, ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, the value of pname:primitiveRestartEnable must: be ename:VK_FALSE * If the <> feature is not enabled, pname:topology mustnot: be any of ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY -* If the <> feature is not enabled, pname:topology mustnot: be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST +* If the <> feature is not enabled, pname:topology mustnot: be ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST ifndef::doctype-manpage[] ******************************************************************************** endif::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/structs/VkPipelineShaderStageCreateInfo.txt b/doc/specs/vulkan/validity/structs/VkPipelineShaderStageCreateInfo.txt index e8cdb99b..dd836b5f 100644 --- a/doc/specs/vulkan/validity/structs/VkPipelineShaderStageCreateInfo.txt +++ b/doc/specs/vulkan/validity/structs/VkPipelineShaderStageCreateInfo.txt @@ -14,8 +14,8 @@ endif::doctype-manpage[] * pname:module must: be a valid sname:VkShaderModule handle * pname:pName must: be a null-terminated string * If pname:pSpecializationInfo is not `NULL`, pname:pSpecializationInfo must: be a pointer to a valid sname:VkSpecializationInfo structure -* If the <> feature is not enabled, pname:stage mustnot: be pname:VK_SHADER_STAGE_GEOMETRY_BIT -* If the <> feature is not enabled, pname:stage mustnot: be pname:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or pname:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT +* If the <> feature is not enabled, pname:stage mustnot: be ename:VK_SHADER_STAGE_GEOMETRY_BIT +* If the <> feature is not enabled, pname:stage mustnot: be ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT * pname:stage mustnot: be ename:VK_SHADER_STAGE_ALL_GRAPHICS, or ename:VK_SHADER_STAGE_ALL * pname:pName must: be the name of an code:OpEntryPoint in pname:module with an execution model that matches pname:stage * If the identified entry point includes any variable in its interface that is declared with the code:ClipDistance code:BuiltIn decoration, that variable mustnot: have an array size greater than sname:VkPhysicalDeviceLimits::pname:maxClipDistances diff --git a/doc/specs/vulkan/validity/structs/VkSamplerCreateInfo.txt b/doc/specs/vulkan/validity/structs/VkSamplerCreateInfo.txt index 2ef815e7..6c18d96f 100644 --- a/doc/specs/vulkan/validity/structs/VkSamplerCreateInfo.txt +++ b/doc/specs/vulkan/validity/structs/VkSamplerCreateInfo.txt @@ -26,6 +26,7 @@ endif::doctype-manpage[] * If pname:unnormalizedCoordinates is ename:VK_TRUE, pname:anisotropyEnable must: be ename:VK_FALSE * If pname:unnormalizedCoordinates is ename:VK_TRUE, pname:compareEnable must: be ename:VK_FALSE * If any of pname:addressModeU, pname:addressModeV or pname:addressModeW are ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, pname:borderColor must: be a valid elink:VkBorderColor value +* If the VK_KHR_mirror_clamp_to_edge extension is not enabled, pname:addressModeU, pname:addressModeV and pname:addressModeW mustnot: be ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE * If pname:compareEnable is ename:VK_TRUE, pname:compareOp must: be a valid elink:VkCompareOp value ifndef::doctype-manpage[] ******************************************************************************** diff --git a/doc/specs/vulkan/validity/structs/VkShaderModuleCreateInfo.txt b/doc/specs/vulkan/validity/structs/VkShaderModuleCreateInfo.txt index 6d343886..c6c39c4b 100644 --- a/doc/specs/vulkan/validity/structs/VkShaderModuleCreateInfo.txt +++ b/doc/specs/vulkan/validity/structs/VkShaderModuleCreateInfo.txt @@ -10,7 +10,7 @@ endif::doctype-manpage[] * pname:sType must: be ename:VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO * pname:pNext must: be `NULL` * pname:flags must: be `0` -* pname:pCode must: be a pointer to an array of pname:codeSize/4 basetype:uint32_t values +* pname:pCode must: be a pointer to an array of latexmath:[$codeSize \over 4$] basetype:uint32_t values * pname:codeSize must: be greater than 0 * pname:codeSize must: be a multiple of 4 * pname:pCode must: point to valid SPIR-V code, formatted and packed as described by https://www.khronos.org/registry/spir-v/specs/1.0/SPIRV.html[the SPIR-V Specification v1.0] diff --git a/doc/specs/vulkan/validity/structs/VkSubmitInfo.txt b/doc/specs/vulkan/validity/structs/VkSubmitInfo.txt index 8889c672..14d03504 100644 --- a/doc/specs/vulkan/validity/structs/VkSubmitInfo.txt +++ b/doc/specs/vulkan/validity/structs/VkSubmitInfo.txt @@ -16,7 +16,7 @@ endif::doctype-manpage[] * If pname:signalSemaphoreCount is not `0`, pname:pSignalSemaphores must: be a pointer to an array of pname:signalSemaphoreCount valid sname:VkSemaphore handles * Each of the elements of pname:pWaitSemaphores, the elements of pname:pCommandBuffers and the elements of pname:pSignalSemaphores that are valid handles must: have been created, allocated or retrieved from the same sname:VkDevice * Any given element of pname:pSignalSemaphores must: currently be unsignalled -* Any given element of pname:pCommandBuffers must: either have been recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device +* Any given element of pname:pCommandBuffers must: either have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device * Any given element of pname:pCommandBuffers must: be in the executable state * If any given element of pname:pCommandBuffers contains commands that execute secondary command buffers, those secondary command buffers must: have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device * If any given element of pname:pCommandBuffers was created with ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, it mustnot: have been previously submitted without re-recording that command buffer @@ -24,8 +24,8 @@ endif::doctype-manpage[] * Any given element of pname:pCommandBuffers must: have been created on a sname:VkCommandPool that was created for the same queue family that the calling command's pname:queue belongs to * Any given element of pname:pCommandBuffers mustnot: have been created with ename:VK_COMMAND_BUFFER_LEVEL_SECONDARY * Any given element of sname:VkSemaphore in pname:pWaitSemaphores must: refer to a prior signal of that sname:VkSemaphore that won't be consumed by any other wait on that semaphore -* If the <> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT -* If the <> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +* If the <> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +* If the <> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT ifndef::doctype-manpage[] ******************************************************************************** endif::doctype-manpage[] diff --git a/doc/specs/vulkan/validity/structs/VkSubpassDependency.txt b/doc/specs/vulkan/validity/structs/VkSubpassDependency.txt index 2fdd00ed..04c8588b 100644 --- a/doc/specs/vulkan/validity/structs/VkSubpassDependency.txt +++ b/doc/specs/vulkan/validity/structs/VkSubpassDependency.txt @@ -14,10 +14,10 @@ endif::doctype-manpage[] * pname:srcAccessMask must: be a valid combination of elink:VkAccessFlagBits values * pname:dstAccessMask must: be a valid combination of elink:VkAccessFlagBits values * pname:dependencyFlags must: be a valid combination of elink:VkDependencyFlagBits values -* If the <> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT -* If the <> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT -* If the <> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT -* If the <> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +* If the <> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +* If the <> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +* If the <> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +* If the <> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT * The value of pname:srcSubpass must: be less than or equal to pname:dstSubpass, unless one of them is ename:VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order * The values of pname:srcSubpass and pname:dstSubpass mustnot: both be equal to ename:VK_SUBPASS_EXTERNAL ifndef::doctype-manpage[] diff --git a/doc/specs/vulkan/vkapi.py b/doc/specs/vulkan/vkapi.py index 8fe3f7e9..1ad67501 100644 --- a/doc/specs/vulkan/vkapi.py +++ b/doc/specs/vulkan/vkapi.py @@ -110,8 +110,8 @@ consts['VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType' consts['VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType' consts['VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType' consts['VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType' -consts['VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT'] = 'VkStructureType' -enums['VkStructureType'] = ['VK_STRUCTURE_TYPE_APPLICATION_INFO', 'VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO', 'VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SUBMIT_INFO', 'VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE', 'VK_STRUCTURE_TYPE_BIND_SPARSE_INFO', 'VK_STRUCTURE_TYPE_FENCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO', 'VK_STRUCTURE_TYPE_EVENT_CREATE_INFO', 'VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO', 'VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO', 'VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO', 'VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO', 'VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO', 'VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET', 'VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET', 'VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO', 'VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO', 'VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO', 'VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_PRESENT_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR', 'VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT'] +consts['VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT'] = 'VkStructureType' +enums['VkStructureType'] = ['VK_STRUCTURE_TYPE_APPLICATION_INFO', 'VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO', 'VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SUBMIT_INFO', 'VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE', 'VK_STRUCTURE_TYPE_BIND_SPARSE_INFO', 'VK_STRUCTURE_TYPE_FENCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO', 'VK_STRUCTURE_TYPE_EVENT_CREATE_INFO', 'VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO', 'VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO', 'VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO', 'VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO', 'VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO', 'VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET', 'VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET', 'VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO', 'VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO', 'VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO', 'VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_PRESENT_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR', 'VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT'] # Unprocessed type: void # Unprocessed type: uint32_t # Unprocessed type: VkFlags category: basetype @@ -1025,3 +1025,5 @@ protos['vkCmdExecuteCommands'] = ['commandBuffer', 'commandBufferCount', 'pComm structs['VkDispatchIndirectCommand'] = ['x', 'y', 'z'] structs['VkDrawIndexedIndirectCommand'] = ['indexCount', 'instanceCount', 'firstIndex', 'vertexOffset', 'firstInstance'] structs['VkDrawIndirectCommand'] = ['vertexCount', 'instanceCount', 'firstVertex', 'firstInstance'] +consts['VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION'] = None +consts['VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME'] = None diff --git a/doc/specs/vulkan/vkspec.txt b/doc/specs/vulkan/vkspec.txt index 1562700a..b0723a9e 100644 --- a/doc/specs/vulkan/vkspec.txt +++ b/doc/specs/vulkan/vkspec.txt @@ -102,6 +102,8 @@ include::appendices/compressedtex.txt[] include::appendices/extensions.txt[] +include::appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt[] + include::appendices/invariance.txt[] include::appendices/glossary.txt[] diff --git a/src/spec/generator.py b/src/spec/generator.py index 7dd75a7f..e1ff704a 100644 --- a/src/spec/generator.py +++ b/src/spec/generator.py @@ -625,7 +625,8 @@ class COutputGenerator(OutputGenerator): # # Multiple inclusion protection & C++ wrappers. if (genOpts.protectFile and self.genOpts.filename): - headerSym = '__' + re.sub('\.h', '_h_', os.path.basename(self.genOpts.filename)) + headerSym = re.sub('\.h', '_h_', + os.path.basename(self.genOpts.filename)).upper() write('#ifndef', headerSym, file=self.outFile) write('#define', headerSym, '1', file=self.outFile) self.newline() diff --git a/src/spec/genvk.py b/src/spec/genvk.py index f2207538..c9a37175 100755 --- a/src/spec/genvk.py +++ b/src/spec/genvk.py @@ -203,6 +203,7 @@ buildList = [ defaultExtensions = None, addExtensions = makeREstring([ + 'VK_KHR_sampler_mirror_clamp_to_edge', ]), removeExtensions = makeREstring([ @@ -226,6 +227,7 @@ buildList = [ defaultExtensions = None, addExtensions = makeREstring([ + 'VK_KHR_sampler_mirror_clamp_to_edge', ]), removeExtensions = makeREstring([ @@ -243,6 +245,7 @@ buildList = [ defaultExtensions = None, addExtensions = makeREstring([ + 'VK_KHR_sampler_mirror_clamp_to_edge', ]), removeExtensions = makeREstring([ @@ -261,6 +264,7 @@ buildList = [ defaultExtensions = None, addExtensions = makeREstring([ + 'VK_KHR_sampler_mirror_clamp_to_edge', ]), removeExtensions = makeREstring([ diff --git a/src/spec/readme.pdf b/src/spec/readme.pdf index 11bcf70a3457fff7dc1cf967c45788038dadb773..c2b61303688cf657632a19a7dd287594b8596aa2 100644 GIT binary patch delta 154868 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 SE)hvFDG^Bk7niEO8sHx@!hPHT delta 143663 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 DJM>6u diff --git a/src/spec/readme.tex b/src/spec/readme.tex index 9c02d09b..45140590 100644 --- a/src/spec/readme.tex +++ b/src/spec/readme.tex @@ -50,40 +50,78 @@ \title{The Khronos Vulkan API Registry for Vulkan} \author{Jon Leech} -\date{Last updated 2016/02/07} +\date{Last updated 2016/02/22} \maketitle \begin{abstract} This document describes the Khronos Vulkan API Registry schema, and provides some additional information about using the registry and scripts to generate -a variety of outputs including C header files and several types of asciidoc -include files used in the Vulkan API specification and reference pages. The -underlying XML files and scripts are located on the Khronos Gitlab server, -currently in the {\em master} branch at URL +a variety of outputs, including C header files as well as several types of +asciidoc include files used in the Vulkan API specification and reference +pages. The underlying XML files and scripts are located on the Khronos +public Github server as URL \begin{center} -{\bf \href{https://gitlab.khronos.org/vulkan/vulkan/tree/master/src/spec/} - {https://gitlab.khronos.org/vulkan/vulkan/tree/master/src/spec/}} +{\bf \href{https://github.com/KhronosGroup/Vulkan-Docs} + {https://github.com/KhronosGroup/Vulkan-Docs}} \end{center} +The authoritative copy of the Registry is maintained in the {\em 1.0} +branch. + \end{abstract} \tableofcontents \section{Introduction} -The registry uses an XML representation of the Vulkan API and a set of -Python scripts to manipulate the XML, based on the lxml Python bindings. It -includes an XML schema and validator. +The registry uses an XML representation of the Vulkan API, together with a +set of Python scripts to manipulate the registry once loaded. The scripts +rely on the lxml Python bindings to parse and operate on XML. An XML schema +and validator target are included. -The registry schema is based on, but not identical to the schema used for -the previously published OpenGL, OpenGL ES and EGL API registries. The -schema was extended to represent additional types and concepts not needed -for those APIS, such as structure and enumerant types. +The schema is based on, but not identical to that used for the previously +published OpenGL, OpenGL ES and EGL API registries. It was extended to +represent additional types and concepts not needed for those APIS, such as +structure and enumerant types, as well as additional types +of registered information specific to Vulkan. The processed C header file corresponding to the registry is checked in -under src/vulkan/vulkan.h . +under {\tt src/vulkan/vulkan.h}. + + +\subsection{Schema Choices} + +The XML schema is not pure XML all the way down. In particular, command +return types/names and parameters, and structure members, are described in +mixed-mode tag containing C declarations of the appropriate information, +with some XML nodes annotating particular parts of the declaration such as +its base type and name. This choice is based on prior experience with the +SGI {\tt .spec} file format used to describe OpenCL, and greatly eases human +reading and writing the XML, and generating C-oriented output. The cost is +that people writing output generators for other languages will have to +include enough logic to parse the C declarations and extract the relevant +information. + +People who don't find the supplied Python scripts to suit their needs are +likely to write their own parsers, interpreters, and/or converters operating +on the registry XML. We hope that we've provided enough information in this +document, the RNC schema ({\tt registry.rnc}), and comments in the Registry +({\tt vk.xml}) itself to enable such projects. If not and you need +clarifications; if you have other problems using the registry; or if you +have proposed changes and enhancements, then please file issues on Khronos' +public Github project at + +\begin{center} +{\bf \href{https://github.com/KhronosGroup/Vulkan-Docs/issues} + {https://github.com/KhronosGroup/Vulkan-Docs/issues}} +\end{center} + +Please tag your issues with {\tt [Registry]} in the title line to help us +categorize them. We expect that we will eventually separate the registry +from the specification source into a separate repository, but for now they +are mixed together. \section{Getting Started} @@ -144,9 +182,6 @@ Other Makefile targets include: \code{vulkan-docs}. \item \code{validate} - validate \code{vk.xml} against the XML schema. Recommended if you're making nontrivial changes. -%% \item \code{vk.json} - generate JSON version of \code{vk.xml}. Currently the -%% converter is generating syntactically but not semantically legal JSON, -%% and it's difficult to map the XML schemaanso don't use this target yet. \item \code{readme.pdf} - regenerate this document from the LaTeX source. Most people will never need to do this. If you do, you must have pdflatex installed, preferably from the TeTeX distribution. @@ -342,11 +377,13 @@ information is used to generate more complicated C types. \code{enum}, \code{funcpointer}, \code{group}, \code{handle}, \code{include}, \code{struct}, and \code{union}, as described below. \item \attr{comment} - optional. Arbitrary string (unused). -\item \attr{parent} only applicable if category is \code{handle}. Notes another type with - the \code{handle} category that acts as a parent object for this type. -\item \attr{returnedonly} only applicable if category is \code{struct} or \code{union}. - Notes that this struct/union is going to be filled in by the API, rather than an - application filling it out and passing it to the API. +\item \attr{parent} only applicable if category is \code{handle}. Notes + another type with the \code{handle} category that acts as a parent + object for this type. +\item \attr{returnedonly} only applicable if category is \code{struct} or + \code{union}. Notes that this struct/union is going to be filled in by + the API, rather than an application filling it out and passing it to + the API. \end{itemize} \subsection{Contents of \tag{type} tags} @@ -381,18 +418,20 @@ member. \paragraph{Attributes of \tag{member} tags} \begin{itemize} -\item \attr{len} - if the member is an array, len may be one or more of the following - things, separated by commas (one for each array indirection): another - member of that struct, ``null-terminated'' for a string, ``1'' to indicate it's - just a pointer (used for nested pointers), or a latex equation (prefixed with - ``latex:'') -\item \attr{externsync} - denotes that the member should be externally synchronized - when accessed by Vulkan -\item \attr{optional} - whether this value can be omitted by providing \code{NULL} (for - pointers), \code{VK_NULL_HANDLE} (for handles) or 0 (for bitmasks/values) -\item \attr{noautovalidity} - prevents automatic validity language being generated - for the tagged item. Only suppresses item-specific validity - parenting issues - etc. are still captured. +\item \attr{len} - if the member is an array, len may be one or more of the + following things, separated by commas (one for each array + indirection): another member of that struct; ``null-terminated'' for a + string; ``1'' to indicate it's just a pointer (used for nested + pointers); or an equation (a LaTeX math expression delimited by {\tt + latexmath:[\$} and {\tt \$]}. +\item \attr{externsync} - denotes that the member should be externally + synchronized when accessed by Vulkan +\item \attr{optional} - whether this value can be omitted by providing + \code{NULL} (for pointers), \code{VK_NULL_HANDLE} (for handles) or 0 + (for bitmasks/values) +\item \attr{noautovalidity} - prevents automatic validity language being + generated for the tagged item. Only suppresses item-specific validity + - parenting issues etc. are still captured. \end{itemize} \paragraph{Contents of \tag{member} tags} @@ -663,6 +702,12 @@ command (function). more of the terms \code{"compute"}, \code{"dma"}, and \code{"graphics"}, with multiple terms separated by commas (\code{","}). +\item \attr{successcodes} - optional. A string describing possible + successful return codes from the command, as a comma-separated list of + Vulkan result code names. +\item \attr{errorcodes} - optional. A string describing possible error + return codes from the command, as a comma-separated list of Vulkan + result code names. \item \attr{renderpass} - optional. A string identifying whether the command can be issued only inside a render pass (\code{"inside"}), only outside a render pass (\code{"outside"}), or both @@ -751,16 +796,18 @@ members. \label{tag:command:param:attr} \begin{itemize} -\item \attr{len} - if the param is an array, len may be one or more of the following - things, separated by commas (one for each array indirection): another - param of that command, ``null-terminated'' for a string, ``1'' to indicate it's - just a pointer (used for nested pointers), or a latex equation (prefixed with - ``latex:'') -\item \attr{optional} - whether this value can be omitted by providing \code{NULL} (for - pointers), \code{VK_NULL_HANDLE} (for handles) or 0 (for bitmasks/values) -\item \attr{noautovalidity} - prevents automatic validity language being generated - for the tagged item. Only suppresses item-specific validity - parenting issues - etc. are still captured. +\item \attr{len} - if the param is an array, len may be one or more of the + following things, separated by commas (one for each array + indirection): another param of that command; ``null-terminated'' for a + string; ``1'' to indicate it's just a pointer (used for nested + pointers); or an equation (a simple expression prefixed with + ``math:'') +\item \attr{optional} - whether this value can be omitted by providing + \code{NULL} (for pointers), \code{VK_NULL_HANDLE} (for handles) or 0 + (for bitmasks/values) +\item \attr{noautovalidity} - prevents automatic validity language being + generated for the tagged item. Only suppresses item-specific validity + - parenting issues etc. are still captured. \item \attr{externsync} - optional. A boolean string, which must have the value \code{"true"} if present, indicating that this parameter (e.g. the object a handle refers to, or the contents of an array a pointer @@ -1358,8 +1405,8 @@ resulting \code{vulkan.h} header will look like this: \begin{verbatim} -#ifndef __vulkan_h_ -#define __vulkan_h_ 1 +#ifndef VULKAN_H_ +#define VULKAN_H_ 1 #ifdef __cplusplus extern "C" { @@ -1754,6 +1801,12 @@ log of this document (see section~\ref{changelog}). Changes to the \label{changelog} \begin{itemize} +\item 2016/02/22 - Change math markup in \attr{len} attributes to use + asciidoc ``latexmath:[$'' and ``$]'' delimiters. +\item 2016/02/19 - Add \attr{successcodes} and \attr{errorcodes} attributes + of \tag{command} tags. Add a subsection to the introduction + describing the schema choices and how to file issues against + the registry. \item 2016/02/07 - Add \attr{vendorids} tags for Khronos vendor IDs. \item 2015/12/10 - Add \attr{author} and \attr{contact} attributes for \tag{extension} tags. diff --git a/src/spec/registry.rnc b/src/spec/registry.rnc index 0eb45024..455cdcc4 100644 --- a/src/spec/registry.rnc +++ b/src/spec/registry.rnc @@ -49,11 +49,11 @@ Vendorids = element vendorids { # defines a single vendor ID. # name - author ID of the vendor -# id - Khronos vendor ID +# id - Khronos vendor ID (hexadecimal constant starting at 0x10000) # comment - unused -Tag = element tag { +Vendorid = element vendorid { attribute name { text } , - attribute author { text } , + attribute id { text } , Comment ? } @@ -244,6 +244,10 @@ Commands = element commands { } # defines a single command +# +# The possible attributes are not described in this comment block yet, but +# are in readme.pdf. +# # is the C function prototype, including the return type # are function parameters, in order # len - if the member is an array, len may be one or more of the following @@ -268,6 +272,8 @@ Commands = element commands { # are related to them and also require external synchronization. Command = element command { attribute queues { text } ? , + attribute successcodes { text } ? , + attribute errorcodes { text } ? , attribute renderpass { text } ? , attribute cmdbufferlevel { text } ? , Comment ? , @@ -347,8 +353,7 @@ Extensions = element extensions { # or "disabled" to never generate output. # author - name of the author (usually a company or project name) # contact - contact responsible for the tag (name and contact information) -# In addition, / tags also support an -# api attribute: +# In addition, / tags also support an api attribute: # api - only require/remove these features for the matching API. # Not a regular expression. Extension = element extension { diff --git a/src/spec/vk.xml b/src/spec/vk.xml index dfbeb35a..2184e540 100644 --- a/src/spec/vk.xml +++ b/src/spec/vk.xml @@ -36,6 +36,8 @@ maintained in the master branch of the Khronos Vulkan Github project. + + @@ -49,6 +51,7 @@ maintained in the master branch of the Khronos Vulkan Github project. + @@ -94,7 +97,7 @@ maintained in the master branch of the Khronos Vulkan Github project. #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Vulkan API version supported by this file -#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 3) +#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 4) @@ -741,8 +744,8 @@ maintained in the master branch of the Khronos Vulkan Github project. The value of pname:offset must: be less than the size of pname:buffer The sum of pname:offset and pname:size must: be less than or equal to than the size of pname:buffer - If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be VK_QUEUE_FAMILY_IGNORED - If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>) + If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be ename:VK_QUEUE_FAMILY_IGNORED + If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be ename:VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>) If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex are valid queue families, at least one of them must: be the same as the family of the queue that will execute this barrier @@ -760,8 +763,8 @@ maintained in the master branch of the Khronos Vulkan Github project. pname:oldLayout must: be ename:VK_IMAGE_LAYOUT_UNDEFINED, ename:VK_IMAGE_LAYOUT_PREINITIALIZED or the current layout of the image region affected by the barrier pname:newLayout mustnot: be ename:VK_IMAGE_LAYOUT_UNDEFINED or ename:VK_IMAGE_LAYOUT_PREINITIALIZED - If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be VK_QUEUE_FAMILY_IGNORED - If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>) + If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be ename:VK_QUEUE_FAMILY_IGNORED + If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be ename:VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>) If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex are valid queue families, at least one of them must: be the same as the family of the queue that will execute this barrier pname:subresourceRange must: be a valid subresource range for the image (see <<resources-image-views>>) If pname:image has a depth/stencil format with both depth and stencil components, then pname:aspectMask member of pname:subresourceRange must: include both ename:VK_IMAGE_ASPECT_DEPTH_BIT and ename:VK_IMAGE_ASPECT_STENCIL_BIT @@ -819,20 +822,20 @@ maintained in the master branch of the Khronos Vulkan Github project. If the <<features-features-textureCompressionBC,BC texture compression>> feature is not enabled, pname:format mustnot: be ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK, ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK, ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK, ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK, ename:VK_FORMAT_BC2_UNORM_BLOCK, ename:VK_FORMAT_BC2_SRGB_BLOCK, ename:VK_FORMAT_BC3_UNORM_BLOCK, ename:VK_FORMAT_BC3_SRGB_BLOCK, ename:VK_FORMAT_BC4_UNORM_BLOCK, ename:VK_FORMAT_BC4_SNORM_BLOCK, ename:VK_FORMAT_BC5_UNORM_BLOCK, ename:VK_FORMAT_BC5_SNORM_BLOCK, ename:VK_FORMAT_BC6H_UFLOAT_BLOCK, ename:VK_FORMAT_BC6H_SFLOAT_BLOCK, ename:VK_FORMAT_BC7_UNORM_BLOCK, or ename:VK_FORMAT_BC7_SRGB_BLOCK If the <<features-features-shaderStorageImageMultisample,multisampled storage images>> feature is not enabled, and pname:usage contains ename:VK_IMAGE_USAGE_STORAGE_BIT, pname:samples must: be ename:VK_SAMPLE_COUNT_1_BIT If the <<features-features-sparseBinding,sparse bindings>> feature is not enabled, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT - If the <<features-features-sparseResidencyImage2D,sparse residency for 2D images>> feature is not enabled, and pname:imageType is VK_IMAGE_TYPE_2D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the <<features-features-sparseResidencyImage3D,sparse residency for 3D images>> feature is not enabled, and pname:imageType is VK_IMAGE_TYPE_3D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the <<features-features-sparseResidency2Samples,sparse residency for images with 2 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_2_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the <<features-features-sparseResidency4Samples,sparse residency for images with 4 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_4_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the <<features-features-sparseResidency8Samples,sparse residency for images with 8 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_8_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the <<features-features-sparseResidency16Samples,sparse residency for images with 16 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_16_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT - If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT - If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT - If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT - If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT - If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT - If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT - If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT + If the <<features-features-sparseResidencyImage2D,sparse residency for 2D images>> feature is not enabled, and pname:imageType is ename:VK_IMAGE_TYPE_2D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT + If the <<features-features-sparseResidencyImage3D,sparse residency for 3D images>> feature is not enabled, and pname:imageType is ename:VK_IMAGE_TYPE_3D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT + If the <<features-features-sparseResidency2Samples,sparse residency for images with 2 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_2_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT + If the <<features-features-sparseResidency4Samples,sparse residency for images with 4 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_4_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT + If the <<features-features-sparseResidency8Samples,sparse residency for images with 8 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_8_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT + If the <<features-features-sparseResidency16Samples,sparse residency for images with 16 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_16_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT + If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT + If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT + If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT + If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT + If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT + If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT + If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT + If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT If pname:flags contains ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must: also contain at least one of ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT or ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT @@ -1037,7 +1040,7 @@ maintained in the master branch of the Khronos Vulkan Github project. const void* pNext VkShaderModuleCreateFlags flags size_t codeSize - const uint32_t* pCode + const uint32_t* pCode pname:codeSize must: be greater than 0 pname:codeSize must: be a multiple of 4 @@ -1118,8 +1121,8 @@ maintained in the master branch of the Khronos Vulkan Github project. const char* pName const VkSpecializationInfo* pSpecializationInfo - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stage mustnot: be pname:VK_SHADER_STAGE_GEOMETRY_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stage mustnot: be pname:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or pname:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stage mustnot: be ename:VK_SHADER_STAGE_GEOMETRY_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stage mustnot: be ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT pname:stage mustnot: be ename:VK_SHADER_STAGE_ALL_GRAPHICS, or ename:VK_SHADER_STAGE_ALL pname:pName must: be the name of an code:OpEntryPoint in pname:module with an execution model that matches pname:stage If the identified entry point includes any variable in its interface that is declared with the code:ClipDistance code:BuiltIn decoration, that variable mustnot: have an array size greater than sname:VkPhysicalDeviceLimits::pname:maxClipDistances @@ -1201,7 +1204,7 @@ maintained in the master branch of the Khronos Vulkan Github project. If pname:topology is ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST, ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, the value of pname:primitiveRestartEnable must: be ename:VK_FALSE If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:topology mustnot: be any of ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:topology mustnot: be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:topology mustnot: be ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST @@ -1255,7 +1258,7 @@ maintained in the master branch of the Khronos Vulkan Github project. VkSampleCountFlagBits rasterizationSamples VkBool32 sampleShadingEnable float minSampleShading - const VkSampleMask* pSampleMask + const VkSampleMask* pSampleMask VkBool32 alphaToCoverageEnable VkBool32 alphaToOneEnable @@ -1273,10 +1276,10 @@ maintained in the master branch of the Khronos Vulkan Github project. VkBlendOp alphaBlendOp VkColorComponentFlags colorWriteMask - If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcColorBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA - If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstColorBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA - If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcAlphaBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA - If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstAlphaBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA + If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcColorBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA + If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstColorBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA + If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcAlphaBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA + If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstAlphaBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA @@ -1457,6 +1460,7 @@ maintained in the master branch of the Khronos Vulkan Github project. If pname:unnormalizedCoordinates is ename:VK_TRUE, pname:anisotropyEnable must: be ename:VK_FALSE If pname:unnormalizedCoordinates is ename:VK_TRUE, pname:compareEnable must: be ename:VK_FALSE If any of pname:addressModeU, pname:addressModeV or pname:addressModeW are ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, pname:borderColor must: be a valid elink:VkBorderColor value + If the VK_KHR_mirror_clamp_to_edge extension is not enabled, pname:addressModeU, pname:addressModeV and pname:addressModeW mustnot: be ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE If pname:compareEnable is ename:VK_TRUE, pname:compareOp must: be a valid elink:VkCompareOp value @@ -1586,10 +1590,10 @@ maintained in the master branch of the Khronos Vulkan Github project. VkAccessFlags dstAccessMask VkDependencyFlags dependencyFlags - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT The value of pname:srcSubpass must: be less than or equal to pname:dstSubpass, unless one of them is ename:VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order The values of pname:srcSubpass and pname:dstSubpass mustnot: both be equal to ename:VK_SUBPASS_EXTERNAL @@ -1904,7 +1908,7 @@ maintained in the master branch of the Khronos Vulkan Github project. const VkSemaphore* pSignalSemaphores Any given element of pname:pSignalSemaphores must: currently be unsignalled - Any given element of pname:pCommandBuffers must: either have been recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device + Any given element of pname:pCommandBuffers must: either have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device Any given element of pname:pCommandBuffers must: be in the executable state If any given element of pname:pCommandBuffers contains commands that execute secondary command buffers, those secondary command buffers must: have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device If any given element of pname:pCommandBuffers was created with ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, it mustnot: have been previously submitted without re-recording that command buffer @@ -1912,8 +1916,8 @@ maintained in the master branch of the Khronos Vulkan Github project. Any given element of pname:pCommandBuffers must: have been created on a sname:VkCommandPool that was created for the same queue family that the calling command's pname:queue belongs to Any given element of pname:pCommandBuffers mustnot: have been created with ename:VK_COMMAND_BUFFER_LEVEL_SECONDARY Any given element of sname:VkSemaphore in pname:pWaitSemaphores must: refer to a prior signal of that sname:VkSemaphore that won't be consumed by any other wait on that semaphore - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT @@ -2100,7 +2104,7 @@ maintained in the master branch of the Khronos Vulkan Github project. - VkStructureType sType + VkStructureType sType const void* pNext VkDebugReportFlagsEXT flags PFN_vkDebugReportCallbackEXT pfnCallback @@ -2254,7 +2258,7 @@ maintained in the master branch of the Khronos Vulkan Github project. - + @@ -2868,14 +2872,14 @@ maintained in the master branch of the Khronos Vulkan Github project. - + - + @@ -2906,7 +2910,7 @@ maintained in the master branch of the Khronos Vulkan Github project. - + @@ -3187,7 +3191,7 @@ maintained in the master branch of the Khronos Vulkan Github project. void vkGetImageSparseMemoryRequirements VkDevice device VkImage image - uint32_t* pSparseMemoryRequirementCount + uint32_t* pSparseMemoryRequirementCount VkSparseImageMemoryRequirements* pSparseMemoryRequirements pname:image must: have been created with the ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag @@ -4045,8 +4049,8 @@ maintained in the master branch of the Khronos Vulkan Github project. The sum of the pname:srcOffset and pname:copySize members of a given element of pname:pRegions must: be less than or equal to the size of pname:srcBuffer The sum of the pname:dstOffset and pname:copySize members of a given element of pname:pRegions must: be less than or equal to the size of pname:dstBuffer The union of the source regions, and the union of the destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory - pname:srcBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag - pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag + pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag + pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag @@ -4062,12 +4066,12 @@ maintained in the master branch of the Khronos Vulkan Github project. The source region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcImage The destination region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory - pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag + pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice - pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL - pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag + pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL + pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice - pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL + pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL The elink:VkFormat of each of pname:srcImage and pname:dstImage must: be compatible, as defined <<copies-images-format-compatibility, below>> The sample count of pname:srcImage and pname:dstImage must: match @@ -4087,13 +4091,13 @@ maintained in the master branch of the Khronos Vulkan Github project. The destination region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory pname:srcImage must: use a format that supports ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT, which is indicated by sname:VkFormatProperties::pname:linearTilingFeatures (for linear tiled images) or sname:VkFormatProperties::pname:optimalTilingFeatures (for optimally tiled images) - as returned by fname:vkGetPhysicalDeviceFormatProperties - pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag + pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice - pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL + pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL pname:dstImage must: use a format that supports ename:VK_FORMAT_FEATURE_BLIT_DST_BIT, which is indicated by sname:VkFormatProperties::pname:linearTilingFeatures (for linear tiled images) or sname:VkFormatProperties::pname:optimalTilingFeatures (for optimally tiled images) - as returned by fname:vkGetPhysicalDeviceFormatProperties - pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag + pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice - pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL + pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL The sample count of pname:srcImage and pname:dstImage must: both be equal to ename:VK_SAMPLE_COUNT_1_BIT If either of pname:srcImage or pname:dstImage was created with a signed integer elink:VkFormat, the other must: also have been created with a signed integer elink:VkFormat If either of pname:srcImage or pname:dstImage was created with an unsigned integer elink:VkFormat, the other must: also have been created with an unsigned integer elink:VkFormat @@ -4113,11 +4117,11 @@ maintained in the master branch of the Khronos Vulkan Github project. The buffer region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcBuffer The image region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory - pname:srcBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag - pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag + pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag + pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag pname:dstImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice - pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL + pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL @@ -4132,11 +4136,11 @@ maintained in the master branch of the Khronos Vulkan Github project. The image region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcImage The buffer region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstBuffer The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory - pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag + pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag pname:srcImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice - pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL - pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag + pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL + pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag @@ -4145,13 +4149,13 @@ maintained in the master branch of the Khronos Vulkan Github project. VkBuffer dstBuffer VkDeviceSize dstOffset VkDeviceSize dataSize - const uint32_t* pData + const uint32_t* pData The sum of pname:dstOffset and pname:dataSize must: be less than or equal to the size of pname:dstBuffer - pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag + pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag The value of pname:dstOffset must: be a multiple of `4` The value of pname:dataSize must: be greater than `0` - The value of pname:dataSize must: be less than `65536` + The value of pname:dataSize must: be less than or equal to `65536` The value of pname:dataSize must: be a multiple of `4` @@ -4164,7 +4168,7 @@ maintained in the master branch of the Khronos Vulkan Github project. uint32_t data If pname:size is not equal to ename:VK_WHOLE_SIZE, the sum of pname:dstOffset and pname:size must: be less than or equal to the size of pname:dstBuffer - pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag + pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag pname:dstOffset must: be a multiple of `4` If pname:size is not equal to ename:VK_WHOLE_SIZE, pname:size must: be a multiple of `4` @@ -4178,9 +4182,9 @@ maintained in the master branch of the Khronos Vulkan Github project. uint32_t rangeCount const VkImageSubresourceRange* pRanges - pname:image must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag + pname:image must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag pname:imageLayout must: specify the layout of the subresource ranges of pname:image specified in pname:pRanges at the time this command is executed on a sname:VkDevice - pname:imageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL + pname:imageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image @@ -4193,9 +4197,9 @@ maintained in the master branch of the Khronos Vulkan Github project. uint32_t rangeCount const VkImageSubresourceRange* pRanges - pname:image must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag + pname:image must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag pname:imageLayout must: specify the layout of the subresource ranges of pname:image specified in pname:pRanges at the time this command is executed on a sname:VkDevice - pname:imageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL + pname:imageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image @@ -4228,9 +4232,9 @@ maintained in the master branch of the Khronos Vulkan Github project. pname:srcImage must: have a sample count equal to any valid sample count value other than ename:VK_SAMPLE_COUNT_1_BIT pname:dstImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice - pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL + pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice - pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL + pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL If pname:dstImage was created with pname:tiling equal to ename:VK_IMAGE_TILING_LINEAR, pname:dstImage must: have been created with a pname:format that supports being a color attachment, as specified by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in sname:VkFormatProperties::pname:linearTilingFeatures returned by fname:vkGetPhysicalDeviceFormatProperties If pname:dstImage was created with pname:tiling equal to ename:VK_IMAGE_TILING_OPTIMAL, pname:dstImage must: have been created with a pname:format that supports being a color attachment, as specified by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in sname:VkFormatProperties::pname:optimalTilingFeatures returned by fname:vkGetPhysicalDeviceFormatProperties @@ -4242,8 +4246,8 @@ maintained in the master branch of the Khronos Vulkan Github project. VkEvent event VkPipelineStageFlags stageMask - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT @@ -4252,8 +4256,8 @@ maintained in the master branch of the Khronos Vulkan Github project. VkEvent event VkPipelineStageFlags stageMask - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT @@ -4270,11 +4274,11 @@ maintained in the master branch of the Khronos Vulkan Github project. uint32_t imageMemoryBarrierCount const VkImageMemoryBarrier* pImageMemoryBarriers - pname:srcStageMask must: be the bitwise OR of the pname:stageMask parameter used in previous calls to fname:vkCmdSetEvent with any of the members of pname:pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the members of pname:pEvents was set using fname:vkSetEvent - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT + pname:srcStageMask must: be the bitwise OR of the pname:stageMask parameter used in previous calls to fname:vkCmdSetEvent with any of the members of pname:pEvents and ename:VK_PIPELINE_STAGE_HOST_BIT if any of the members of pname:pEvents was set using fname:vkSetEvent + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT If pname:pEvents includes one or more events that will be signaled by fname:vkSetEvent after pname:commandBuffer has been submitted to a queue, then fname:vkCmdWaitEvents mustnot: be called inside a render pass instance @@ -4291,10 +4295,10 @@ maintained in the master branch of the Khronos Vulkan Github project. uint32_t imageMemoryBarrierCount const VkImageMemoryBarrier* pImageMemoryBarriers - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT + If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT + If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass must: declare at least one self-dependency from the current subpass to itself - see <<synchronization-pipeline-barriers-subpass-self-dependencies,Subpass Self-dependency>> @@ -4414,8 +4418,8 @@ maintained in the master branch of the Khronos Vulkan Github project. uint32_t commandBufferCount const VkCommandBuffer* pCommandBuffers - pname:commandBuffer must: have been created with a pname:level value of VK_COMMAND_BUFFER_LEVEL_PRIMARY - Any given element of pname:pCommandBuffers must: have been created with a pname:level value of VK_COMMAND_BUFFER_LEVEL_SECONDARY + pname:commandBuffer must: have been created with a pname:level value of ename:VK_COMMAND_BUFFER_LEVEL_PRIMARY + Any given element of pname:pCommandBuffers must: have been created with a pname:level value of ename:VK_COMMAND_BUFFER_LEVEL_SECONDARY Any given element of pname:pCommandBuffers mustnot: be already pending execution in pname:commandBuffer, or appear twice in pname:pCommandBuffers, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag Any given element of pname:pCommandBuffers mustnot: be already pending execution in any other sname:VkCommandBuffer, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag Any given element of pname:pCommandBuffers must: be in the executable state @@ -4969,6 +4973,7 @@ maintained in the master branch of the Khronos Vulkan Github project. + @@ -5070,10 +5075,11 @@ maintained in the master branch of the Khronos Vulkan Github project. - + - + + @@ -5095,5 +5101,12 @@ maintained in the master branch of the Khronos Vulkan Github project. + + + + + + + diff --git a/src/vulkan/vk_platform.h b/src/vulkan/vk_platform.h index a53e725a..f5a5243b 100644 --- a/src/vulkan/vk_platform.h +++ b/src/vulkan/vk_platform.h @@ -25,8 +25,8 @@ */ -#ifndef __VK_PLATFORM_H__ -#define __VK_PLATFORM_H__ +#ifndef VK_PLATFORM_H_ +#define VK_PLATFORM_H_ #ifdef __cplusplus extern "C" @@ -124,4 +124,4 @@ extern "C" #include #endif -#endif // __VK_PLATFORM_H__ +#endif diff --git a/src/vulkan/vulkan.h b/src/vulkan/vulkan.h index cd6a71ac..e195151a 100644 --- a/src/vulkan/vulkan.h +++ b/src/vulkan/vulkan.h @@ -1,5 +1,5 @@ -#ifndef __vulkan_h_ -#define __vulkan_h_ 1 +#ifndef VULKAN_H_ +#define VULKAN_H_ 1 #ifdef __cplusplus extern "C" { @@ -41,7 +41,7 @@ extern "C" { (((major) << 22) | ((minor) << 12) | (patch)) // Vulkan API version supported by this file -#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 3) +#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 4) #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) @@ -209,7 +209,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000, VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, - VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000, + VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), @@ -701,8 +701,8 @@ typedef enum VkSamplerAddressMode { 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_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1), + VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, + VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1), VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF } VkSamplerAddressMode; @@ -3326,8 +3326,8 @@ typedef enum VkDisplayPlaneAlphaFlagBitsKHR { VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, } VkDisplayPlaneAlphaFlagBitsKHR; -typedef VkFlags VkDisplayModeCreateFlagsKHR; typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; +typedef VkFlags VkDisplayModeCreateFlagsKHR; typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; typedef struct VkDisplayPropertiesKHR { @@ -3667,11 +3667,17 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( #endif #endif /* VK_USE_PLATFORM_WIN32_KHR */ +#define VK_KHR_sampler_mirror_clamp_to_edge 1 +#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 +#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" + + #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) -#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 1 +#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 2 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" +#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT typedef enum VkDebugReportObjectTypeEXT {