Change log for January 15, 2018 Vulkan 1.0.68 spec update:

* Bump API patch number and header version number to 68 for this update.

Github Issues:

  * Added more details in the
    <<extended-functionality-extensions-compatibility, Extension
    Compatibility>> section, allowing explicit incompatibilities, and
    simplify corresponding language in the style guide, which now defers to
    the API Specification on this point (public issue 638).
  * Fix typo in description of slink:VkCommandBufferLevel::pname:level
    (public issue 651).
  * Only include extension-dependent valid usage statement for
    slink:VkImageSubresourceRange, and note that the extension names for
    header files described in the <<boilerplate-wsi-header, Window
    System-Specific Header Control>> section are only valid links, when the
    specification being viewed is built with the corresponding extensions
    enabled (public issue 652).

Internal Issues:

  * Add language to elink:VkResult specifying that when commands return an
    error, output parameter contents are undefined instead of unmodified
    (except for pname:sType and pname:pNext). Note that this is a behavior
    change. Add notes calling out slink:VkImageFormatProperties as an
    exception (internal issue 1118).
  * Add "`general-purpose`" to the style guide, and correct existing uses of
    "`general purpose`" as an adjective (internal issue 1121).
  * Add the ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT token
    for the `VK_EXT_validation_cache` extension, following the same naming
    pattern as other tokens in the extension, but keep the old
    ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT token around for
    backwards compatibility (internal issue 1126).

Other Issues:

  * Specify that flink:vkCmdSetDiscardRectangleEXT does not affect copies or
    clears, matching existing language for the scissor rectangle test.
  * Move the <<boilerplate-sType, pname:sType>> definition from the
    boilerplate appendix to the Fundamentals chapter, putting it together
    with the valid usage of pname:sType rather than having the definition
    split across two places.
  * Inline all of the etext:Vk*Flags definitions, moving each one from the
    boilerplate appendix to appear either after the corresponding
    etext:Vk*FlagBits value if one is defined, or after the first structure
    that includes them if not.
This commit is contained in:
Jon Leech 2018-01-15 05:29:25 -08:00
parent b7b1c3a65d
commit 5769283448
52 changed files with 907 additions and 217 deletions

View File

@ -8,6 +8,56 @@ public pull requests that have been accepted.
-----------------------------------------------------
Change log for January 15, 2018 Vulkan 1.0.68 spec update:
* Bump API patch number and header version number to 68 for this update.
Github Issues:
* Added more details in the
<<extended-functionality-extensions-compatibility, Extension
Compatibility>> section, allowing explicit incompatibilities, and
simplify corresponding language in the style guide, which now defers to
the API Specification on this point (public issue 638).
* Fix typo in description of slink:VkCommandBufferLevel::pname:level
(public issue 651).
* Only include extension-dependent valid usage statement for
slink:VkImageSubresourceRange, and note that the extension names for
header files described in the <<boilerplate-wsi-header, Window
System-Specific Header Control>> section are only valid links, when the
specification being viewed is built with the corresponding extensions
enabled (public issue 652).
Internal Issues:
* Add language to elink:VkResult specifying that when commands return an
error, output parameter contents are undefined instead of unmodified
(except for pname:sType and pname:pNext). Note that this is a behavior
change. Add notes calling out slink:VkImageFormatProperties as an
exception (internal issue 1118).
* Add "`general-purpose`" to the style guide, and correct existing uses of
"`general purpose`" as an adjective (internal issue 1121).
* Add the ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT token
for the `VK_EXT_validation_cache` extension, following the same naming
pattern as other tokens in the extension, but keep the old
ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT token around for
backwards compatibility (internal issue 1126).
Other Issues:
* Specify that flink:vkCmdSetDiscardRectangleEXT does not affect copies or
clears, matching existing language for the scissor rectangle test.
* Move the <<boilerplate-sType, pname:sType>> definition from the
boilerplate appendix to the Fundamentals chapter, putting it together
with the valid usage of pname:sType rather than having the definition
split across two places.
* Inline all of the etext:Vk*Flags definitions, moving each one from the
boilerplate appendix to appear either after the corresponding
etext:Vk*FlagBits value if one is defined, or after the first structure
that includes them if not.
-----------------------------------------------------
Change log for January 5, 2018 Vulkan 1.0.67 spec update:
* Bump API patch number and header version number to 67 for this update.

View File

@ -92,7 +92,7 @@ VERBOSE =
# $(EXTENSIONS))
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
SPECREVISION = 1.0.67
SPECREVISION = 1.0.68
# Spell out ISO 8601 format as not all date commands support --rfc-3339
SPECDATE = $(shell echo `date -u "+%Y-%m-%d %TZ"`)

View File

@ -17,10 +17,10 @@ This extension adds support for the following SPIR-V extension in Vulkan:
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
Shouldn't the SPV extension be in the Interactions and External Dependencies
block?
==================
====
endif::editing-notes[]
=== Version History

View File

@ -19,10 +19,10 @@ This extension adds support for the following SPIR-V extension in Vulkan:
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
Shouldn't the SPV extension be in the Interactions and External Dependencies
block?
==================
====
endif::editing-notes[]
=== Version History

View File

@ -19,10 +19,10 @@ This extension adds support for the following SPIR-V extension in Vulkan:
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
Shouldn't the SPV extension be in the Interactions and External Dependencies
block?
==================
====
endif::editing-notes[]
=== Version History

View File

@ -18,10 +18,10 @@ This extension adds support for the following SPIR-V extension in Vulkan:
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
Shouldn't the SPV extension be in the Interactions and External Dependencies
block?
==================
====
endif::editing-notes[]
=== Version History

View File

@ -18,10 +18,10 @@ This extension adds support for the following SPIR-V extension in Vulkan:
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
Shouldn't the SPV extension be in the Interactions and External Dependencies
block?
==================
====
endif::editing-notes[]
=== Version History

View File

@ -174,9 +174,9 @@ This could be a separate extension on top of the base WSI specs.
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
There appears to be a missing sentence for the first part of issue 13 here.
==================
====
endif::editing-notes[]
if they are one physical display device to an end user, but may internally

View File

@ -57,11 +57,11 @@ ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR?
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
(Jon) This issue refers to a token from
`<<VK_KHR_external_semaphore_win32>>`, but there's no dependency or
interaction with that extension defined above.
==================
====
endif::editing-notes[]
*RESOLVED*: Yes, unless it is passed back in to another driver instance to

View File

@ -11,133 +11,6 @@ for a complete functional description of Vulkan, but do not logically belong
elsewhere in the Specification.
[[boilerplate-sType]]
== Structure Types
[open,refpage='VkStructureType',desc='Vulkan structure types (pname:stype)',type='enums']
--
Vulkan structures containing pname:sType members must: have a value of
pname:sType matching the type of the structure, as described more fully in
<<fundamentals-validusage-sType,Valid Usage for Structure Types>>.
Structure types supported by the Vulkan API include:
include::../api/enums/VkStructureType.txt[]
--
[[boilerplate-flags]]
== Flag Types
Vulkan flag types are all bitmasks aliasing the base type basetype:VkFlags
and with corresponding bit flag types defining the valid bits for that flag,
as described in <<fundamentals-validusage-flags, Valid Usage for Flags>>.
Flag types supported by the Vulkan API include:
// All of these types have autogenerated ref pages at present, although
// bringing that content into the spec (by adding // refBegin and // refEnd
// comments and explanatory text for the ref pages) would be more complete.
include::../api/flags/VkAccessFlags.txt[]
include::../api/flags/VkAttachmentDescriptionFlags.txt[]
include::../api/flags/VkBufferCreateFlags.txt[]
include::../api/flags/VkBufferUsageFlags.txt[]
include::../api/flags/VkBufferViewCreateFlags.txt[]
include::../api/flags/VkColorComponentFlags.txt[]
include::../api/flags/VkCommandBufferResetFlags.txt[]
include::../api/flags/VkCommandBufferUsageFlags.txt[]
include::../api/flags/VkCommandPoolCreateFlags.txt[]
include::../api/flags/VkCommandPoolResetFlags.txt[]
include::../api/flags/VkCullModeFlags.txt[]
include::../api/flags/VkDependencyFlags.txt[]
include::../api/flags/VkDescriptorPoolCreateFlags.txt[]
include::../api/flags/VkDescriptorPoolResetFlags.txt[]
include::../api/flags/VkDescriptorSetLayoutCreateFlags.txt[]
ifdef::VK_KHR_descriptor_update_template[]
include::../api/flags/VkDescriptorUpdateTemplateCreateFlagsKHR.txt[]
endif::VK_KHR_descriptor_update_template[]
include::../api/flags/VkDeviceCreateFlags.txt[]
ifdef::VK_KHX_device_group[]
include::../api/flags/VkDeviceGroupPresentModeFlagsKHX.txt[]
endif::VK_KHX_device_group[]
include::../api/flags/VkDeviceQueueCreateFlags.txt[]
include::../api/flags/VkEventCreateFlags.txt[]
include::../api/flags/VkFenceCreateFlags.txt[]
include::../api/flags/VkFormatFeatureFlags.txt[]
include::../api/flags/VkFramebufferCreateFlags.txt[]
include::../api/flags/VkImageAspectFlags.txt[]
include::../api/flags/VkImageCreateFlags.txt[]
include::../api/flags/VkImageUsageFlags.txt[]
include::../api/flags/VkImageViewCreateFlags.txt[]
ifdef::VK_NVX_device_generated_commands[]
include::../api/flags/VkIndirectCommandsLayoutUsageFlagsNVX.txt[]
endif::VK_NVX_device_generated_commands[]
include::../api/flags/VkInstanceCreateFlags.txt[]
ifdef::VK_KHX_device_group[]
include::../api/flags/VkMemoryAllocateFlagsKHX.txt[]
endif::VK_KHX_device_group[]
include::../api/flags/VkMemoryHeapFlags.txt[]
include::../api/flags/VkMemoryMapFlags.txt[]
include::../api/flags/VkMemoryPropertyFlags.txt[]
ifdef::VK_NVX_device_generated_commands[]
include::../api/flags/VkObjectEntryUsageFlagsNVX.txt[]
endif::VK_NVX_device_generated_commands[]
ifdef::VK_KHX_device_group[]
include::../api/flags/VkPeerMemoryFeatureFlagsKHX.txt[]
endif::VK_KHX_device_group[]
include::../api/flags/VkPipelineCacheCreateFlags.txt[]
ifdef::VK_EXT_validation_cache[]
include::../api/flags/VkValidationCacheCreateFlagsEXT.txt[]
endif::VK_EXT_validation_cache[]
include::../api/flags/VkPipelineColorBlendStateCreateFlags.txt[]
ifdef::VK_NV_fragment_coverage_to_color[]
include::../api/flags/VkPipelineCoverageToColorStateCreateFlagsNV.txt[]
endif::VK_NV_fragment_coverage_to_color[]
ifdef::VK_NV_framebuffer_mixed_samples[]
include::../api/flags/VkPipelineCoverageModulationStateCreateFlagsNV.txt[]
endif::VK_NV_framebuffer_mixed_samples[]
include::../api/flags/VkPipelineCreateFlags.txt[]
include::../api/flags/VkPipelineDepthStencilStateCreateFlags.txt[]
include::../api/flags/VkPipelineDynamicStateCreateFlags.txt[]
include::../api/flags/VkPipelineInputAssemblyStateCreateFlags.txt[]
include::../api/flags/VkPipelineLayoutCreateFlags.txt[]
include::../api/flags/VkPipelineMultisampleStateCreateFlags.txt[]
ifdef::VK_EXT_conservative_rasterization[]
include::../api/flags/VkPipelineRasterizationConservativeStateCreateFlagsEXT.txt[]
endif::VK_EXT_conservative_rasterization[]
include::../api/flags/VkPipelineRasterizationStateCreateFlags.txt[]
include::../api/flags/VkPipelineShaderStageCreateFlags.txt[]
include::../api/flags/VkPipelineStageFlags.txt[]
include::../api/flags/VkPipelineTessellationStateCreateFlags.txt[]
include::../api/flags/VkPipelineVertexInputStateCreateFlags.txt[]
include::../api/flags/VkPipelineViewportStateCreateFlags.txt[]
ifdef::VK_NV_viewport_swizzle[]
include::../api/flags/VkPipelineViewportSwizzleStateCreateFlagsNV.txt[]
endif::VK_NV_viewport_swizzle[]
ifdef::VK_EXT_discard_rectangles[]
include::../api/flags/VkPipelineDiscardRectangleStateCreateFlagsEXT.txt[]
endif::VK_EXT_discard_rectangles[]
include::../api/flags/VkQueryControlFlags.txt[]
include::../api/flags/VkQueryPipelineStatisticFlags.txt[]
include::../api/flags/VkQueryPoolCreateFlags.txt[]
include::../api/flags/VkQueryResultFlags.txt[]
include::../api/flags/VkQueueFlags.txt[]
include::../api/flags/VkRenderPassCreateFlags.txt[]
include::../api/flags/VkSampleCountFlags.txt[]
include::../api/flags/VkSamplerCreateFlags.txt[]
include::../api/flags/VkSemaphoreCreateFlags.txt[]
include::../api/flags/VkShaderModuleCreateFlags.txt[]
include::../api/flags/VkShaderStageFlags.txt[]
include::../api/flags/VkSparseImageFormatFlags.txt[]
include::../api/flags/VkSparseMemoryBindFlags.txt[]
include::../api/flags/VkStencilFaceFlags.txt[]
include::../api/flags/VkSubpassDescriptionFlags.txt[]
ifdef::VK_EXT_display_surface_counter[]
include::../api/flags/VkSurfaceCounterFlagsEXT.txt[]
endif::VK_EXT_display_surface_counter[]
[[boilerplate-macros]]
== Macro Definitions in +vulkan.h+
@ -267,7 +140,7 @@ Most Vulkan handle types, such as slink:VkBuffer, are non-dispatchable.
[NOTE]
.Note
==================
====
The +vulkan.h+ header allows the dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE
definition to be overridden by the application.
If dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE is already defined when the
@ -280,7 +153,7 @@ handle and may: result in memory corruption or application termination.
Binary compatibility is platform dependent so the application must: be
careful if it overrides the default dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE
definition.
==================
====
--
@ -409,4 +282,14 @@ ifdef::VK_NN_vi_surface[]
endif::VK_NN_vi_surface[]
|====
[NOTE]
.Note
====
This section describes the purpose of the headers independently of the
specific underlying functionality of the window system extensions
themselves.
Each extension name will only link to a description of that extension when
viewing a specification built with that extension included.
====
// @refEnd WSIheaders

View File

@ -135,7 +135,7 @@ times with the same input as long as:_
[NOTE]
.Note
==================
====
The OpenGL spec has the following invariance rule: Consider a primitive p'
obtained by translating a primitive p through an offset (x, y) in window
coordinates, where x and y are integers.
@ -145,7 +145,7 @@ p except that the center of f' is offset by (x, y) from the center of f.
This rule does not apply to Vulkan and is an intentional difference from
OpenGL.
==================
====
When any sequence of Vulkan commands triggers shader invocations that
perform image stores or atomic operations, and subsequent Vulkan commands

View File

@ -105,9 +105,9 @@ The sname:VkShaderResourceUsageAMD structure is defined as:
include::../api/structs/VkShaderResourceUsageAMD.txt[]
* pname:numUsedVgprs is the number of vector instruction general purpose
* pname:numUsedVgprs is the number of vector instruction general-purpose
registers used by this shader.
* pname:numUsedSgprs is the number of scalar instruction general purpose
* pname:numUsedSgprs is the number of scalar instruction general-purpose
registers used by this shader.
* pname:ldsSizePerLocalWorkGroup is the maximum local data store size per
work group in bytes.

View File

@ -110,6 +110,14 @@ include::../api/enums/VkDebugReportFlagBitsEXT.txt[]
--
[open,refpage='VkDebugReportFlagsEXT',desc='Bitmask of VkDebugReportFlagBitsEXT',type='enums']
--
include::../api/flags/VkDebugReportFlagsEXT.txt[]
sname:VkDebugReportFlagsEXT is a bitmask type for setting a mask of zero or
more slink:VkDebugReportFlagBitsEXT.
--
[open,refpage='PFN_vkDebugReportCallbackEXT',desc='Application-defined debug report callback function',type='funcpointers']
--

View File

@ -64,3 +64,12 @@ include::../../api/enums/VkSurfaceCounterFlagBitsEXT.txt[]
associated with the surface.
--
[open,refpage='VkSurfaceCounterFlagsEXT',desc='Bitmask of VkSurfaceCounterFlagBitsEXT',type='enums']
--
include::../../api/flags/VkSurfaceCounterFlagsEXT.txt[]
sname:VkSurfaceCounterFlagsEXT is a bitmask type for setting a mask of zero
or more slink:VkSurfaceCounterFlagBitsEXT.
--

View File

@ -560,3 +560,11 @@ include::../../api/enums/VkDisplayPlaneAlphaFlagBitsKHR.txt[]
image's other color channels.
--
[open,refpage='VkDisplayPlaneAlphaFlagsKHR',desc='Bitmask of VkDisplayPlaneAlphaFlagBitsKHR',type='enums']
--
include::../../api/flags/VkDisplayPlaneAlphaFlagsKHR.txt[]
sname:VkDisplayPlaneAlphaFlagsKHR is a bitmask type for setting a mask of
zero or more slink:VkDisplayPlaneAlphaFlagBitsKHR.
--

View File

@ -497,6 +497,15 @@ include::../../api/enums/VkSurfaceTransformFlagBitsKHR.txt[]
--
[open,refpage='VkSurfaceTransformFlagsKHR',desc='Bitmask of VkSurfaceTransformFlagBitsKHR',type='enums']
--
include::../../api/flags/VkSurfaceTransformFlagsKHR.txt[]
sname:VkSurfaceTransformFlagsKHR is a bitmask type for setting a mask of
zero or more slink:VkSurfaceTransformFlagBitsKHR.
--
[open,refpage='VkCompositeAlphaFlagBitsKHR',desc='alpha compositing modes supported on a device',type='enums']
--
@ -530,6 +539,14 @@ These values are described as follows:
--
[open,refpage='VkCompositeAlphaFlagsKHR',desc='Bitmask of VkCompositeAlphaFlagBitsKHR',type='enums']
--
include::../../api/flags/VkCompositeAlphaFlagsKHR.txt[]
sname:VkCompositeAlphaFlagsKHR is a bitmask type for setting a mask of zero
or more slink:VkCompositeAlphaFlagBitsKHR.
--
[open,refpage='vkGetPhysicalDeviceSurfaceFormatsKHR',desc='Query color formats supported by surface',type='protos']
--
@ -1135,6 +1152,14 @@ include::../../api/enums/VkDeviceGroupPresentModeFlagBitsKHX.txt[]
--
[open,refpage='VkDeviceGroupPresentModeFlagsKHX',desc='Bitmask of VkDeviceGroupPresentModeFlagBitsKHX',type='enums']
--
include::../../api/flags/VkDeviceGroupPresentModeFlagsKHX.txt[]
sname:VkDeviceGroupPresentModeFlagsKHX is a bitmask type for setting a mask
of zero or more slink:VkDeviceGroupPresentModeFlagBitsKHX.
--
[open,refpage='vkGetDeviceGroupSurfacePresentModesKHX',desc='Query present capabilities for a surface',type='protos']
--

View File

@ -368,6 +368,14 @@ endif::VK_KHX_device_group[]
--
[open,refpage='VkSwapchainCreateFlagsKHR',desc='Bitmask of VkSwapchainCreateFlagBitsKHR',type='enums']
--
include::../../api/flags/VkSwapchainCreateFlagsKHR.txt[]
sname:VkSwapchainCreateFlagsKHR is a bitmask type for setting a mask of zero
or more slink:VkSwapchainCreateFlagBitsKHR.
--
ifdef::VK_KHX_device_group[]
[open,refpage='VkDeviceGroupSwapchainCreateInfoKHX',desc='Structure specifying parameters of a newly created swapchain object',type='structs']

View File

@ -337,6 +337,14 @@ include::../../api/enums/VkIndirectCommandsLayoutUsageFlagBitsNVX.txt[]
--
[open,refpage='VkIndirectCommandsLayoutUsageFlagsNVX',desc='Bitmask of VkIndirectCommandsLayoutUsageFlagBitsNVX',type='enums']
--
include::../../api/flags/VkIndirectCommandsLayoutUsageFlagsNVX.txt[]
sname:VkIndirectCommandsLayoutUsageFlagsNVX is a bitmask type for setting a
mask of zero or more slink:VkIndirectCommandsLayoutUsageFlagBitsNVX.
--
[open,refpage='vkDestroyIndirectCommandsLayoutNVX',desc='Destroy a object table',type='protos']
--

View File

@ -152,6 +152,14 @@ include::../../api/enums/VkObjectEntryUsageFlagBitsNVX.txt[]
--
[open,refpage='VkObjectEntryUsageFlagsNVX',desc='Bitmask of VkObjectEntryUsageFlagBitsNVX',type='enums']
--
include::../../api/flags/VkObjectEntryUsageFlagsNVX.txt[]
sname:VkObjectEntryUsageFlagsNVX is a bitmask type for setting a mask of
zero or more slink:VkObjectEntryUsageFlagBitsNVX.
--
[open,refpage='vkDestroyObjectTableNVX',desc='Destroy a object table',type='protos']
--

View File

@ -86,3 +86,11 @@ include::../../api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[]
implementation supports importing handles of the specified type.
--
[open,refpage='VkExternalMemoryFeatureFlagsNV',desc='Bitmask of VkExternalMemoryFeatureFlagBitsNV',type='enums']
--
include::../../api/flags/VkExternalMemoryFeatureFlagsNV.txt[]
sname:VkExternalMemoryFeatureFlagsNV is a bitmask type for setting a mask of
zero or more slink:VkExternalMemoryFeatureFlagBitsNV.
--

View File

@ -65,3 +65,12 @@ it's defined by.
endif::editing-notes[]
--
[open,refpage='VkExternalMemoryHandleTypeFlagsNV',desc='Bitmask of VkExternalMemoryHandleTypeFlagBitsNV',type='enums']
--
include::../../api/flags/VkExternalMemoryHandleTypeFlagsNV.txt[]
sname:VkExternalMemoryHandleTypeFlagsNV is a bitmask type for setting a mask
of zero or more slink:VkExternalMemoryHandleTypeFlagBitsNV.
--

View File

@ -212,6 +212,14 @@ include::../api/enums/VkCommandPoolCreateFlagBits.txt[]
--
[open,refpage='VkCommandPoolCreateFlags',desc='Bitmask of VkCommandPoolCreateFlagBits',type='enums']
--
include::../api/flags/VkCommandPoolCreateFlags.txt[]
sname:VkCommandPoolCreateFlags is a bitmask type for setting a mask of zero
or more slink:VkCommandPoolCreateFlagBits.
--
ifdef::VK_KHR_maintenance1[]
[open,refpage='vkTrimCommandPoolKHR',desc='Trim a command pool',type='protos']
@ -319,6 +327,14 @@ include::../api/enums/VkCommandPoolResetFlagBits.txt[]
--
[open,refpage='VkCommandPoolResetFlags',desc='Bitmask of VkCommandPoolResetFlagBits',type='enums']
--
include::../api/flags/VkCommandPoolResetFlags.txt[]
sname:VkCommandPoolResetFlags is a bitmask type for setting a mask of zero
or more slink:VkCommandPoolResetFlagBits.
--
[open,refpage='vkDestroyCommandPool',desc='Destroy a command pool object',type='protos']
--
@ -419,7 +435,7 @@ include::../validity/structs/VkCommandBufferAllocateInfo.txt[]
[open,refpage='VkCommandBufferLevel',desc='Enumerant specifying a command buffer level',type='enums']
--
Possible values of slink:VkCommandBufferAllocateInfo::pname:flags,
Possible values of slink:VkCommandBufferAllocateInfo::pname:level,
specifying the command buffer level, are:
include::../api/enums/VkCommandBufferLevel.txt[]
@ -480,6 +496,14 @@ include::../api/enums/VkCommandBufferResetFlagBits.txt[]
--
[open,refpage='VkCommandBufferResetFlags',desc='Bitmask of VkCommandBufferResetFlagBits',type='enums']
--
include::../api/flags/VkCommandBufferResetFlags.txt[]
sname:VkCommandBufferResetFlags is a bitmask type for setting a mask of zero
or more slink:VkCommandBufferResetFlagBits.
--
[open,refpage='vkFreeCommandBuffers',desc='Free command buffers',type='protos']
--
@ -615,6 +639,14 @@ include::../api/enums/VkCommandBufferUsageFlagBits.txt[]
--
[open,refpage='VkCommandBufferUsageFlags',desc='Bitmask of VkCommandBufferUsageFlagBits',type='enums']
--
include::../api/flags/VkCommandBufferUsageFlags.txt[]
sname:VkCommandBufferUsageFlags is a bitmask type for setting a mask of zero
or more slink:VkCommandBufferUsageFlagBits.
--
[open,refpage='VkCommandBufferInheritanceInfo',desc='Structure specifying command buffer inheritance info',type='structs']
--

View File

@ -674,6 +674,14 @@ extensions are enabled in this build of the specification.
endif::VK_KHR_push_descriptor[]
--
[open,refpage='VkDescriptorSetLayoutCreateFlags',desc='Bitmask of VkDescriptorSetLayoutCreateFlagBits',type='enums']
--
include::../api/flags/VkDescriptorSetLayoutCreateFlags.txt[]
sname:VkDescriptorSetLayoutCreateFlags is a bitmask type for setting a mask
of zero or more slink:VkDescriptorSetLayoutCreateFlagBits.
--
[open,refpage='VkDescriptorSetLayoutBinding',desc='Structure specifying a descriptor set layout binding',type='structs']
--
@ -1115,6 +1123,14 @@ endif::VK_KHR_push_descriptor[]
include::../validity/structs/VkPipelineLayoutCreateInfo.txt[]
--
[open,refpage='VkPipelineLayoutCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineLayoutCreateFlags.txt[]
sname:VkPipelineLayoutCreateFlags is a bitmask type for setting a mask, but
is currently reserved for future use.
--
[open,refpage='VkPushConstantRange',desc='Structure specifying a push constant range',type='structs']
--
@ -1459,6 +1475,14 @@ include::../api/enums/VkDescriptorPoolCreateFlagBits.txt[]
--
[open,refpage='VkDescriptorPoolCreateFlags',desc='Bitmask of VkDescriptorPoolCreateFlagBits',type='enums']
--
include::../api/flags/VkDescriptorPoolCreateFlags.txt[]
sname:VkDescriptorPoolCreateFlags is a bitmask type for setting a mask of
zero or more slink:VkDescriptorPoolCreateFlagBits.
--
[open,refpage='VkDescriptorPoolSize',desc='Structure specifying descriptor pool size',type='structs']
--
@ -1713,6 +1737,14 @@ pool, and the descriptor sets are implicitly freed.
include::../validity/protos/vkResetDescriptorPool.txt[]
--
[open,refpage='VkDescriptorPoolResetFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkDescriptorPoolResetFlags.txt[]
sname:VkDescriptorPoolResetFlags is a bitmask type for setting a mask, but
is currently reserved for future use.
--
[[descriptorsets-updates]]
=== Descriptor Set Updates
@ -2324,6 +2356,14 @@ include::../validity/structs/VkDescriptorUpdateTemplateCreateInfoKHR.txt[]
--
[open,refpage='VkDescriptorUpdateTemplateCreateFlagsKHR',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkDescriptorUpdateTemplateCreateFlagsKHR.txt[]
sname:VkDescriptorUpdateTemplateCreateFlagsKHR is a bitmask type for setting
a mask, but is currently reserved for future use.
--
[open,refpage='VkDescriptorUpdateTemplateTypeKHR',desc='Indicates the valid usage of the descriptor update template',type='enums']
--

View File

@ -468,6 +468,14 @@ For further details see <<devsandqueues-queues,Queues>>.
--
[open,refpage='VkQueueFlags',desc='Bitmask of VkQueueFlagBits',type='enums']
--
include::../api/flags/VkQueueFlags.txt[]
sname:VkQueueFlags is a bitmask type for setting a mask of zero or more
slink:VkQueueFlagBits.
--
ifdef::VK_KHR_get_physical_device_properties2[]
[open,refpage='vkGetPhysicalDeviceQueueFamilyProperties2KHR',desc='Reports properties of the queues of the specified physical device',type='protos']
@ -733,6 +741,14 @@ endif::VK_KHR_maintenance1[]
include::../validity/structs/VkDeviceCreateInfo.txt[]
--
[open,refpage='VkDeviceCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkDeviceCreateFlags.txt[]
sname:VkDeviceCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
ifdef::VK_KHX_device_group_creation[]
[open,refpage='VkDeviceGroupDeviceCreateInfoKHX',desc='Create a logical device from multiple physical devices',type='structs']
@ -1075,6 +1091,14 @@ include::../api/structs/VkDeviceQueueCreateInfo.txt[]
include::../validity/structs/VkDeviceQueueCreateInfo.txt[]
--
[open,refpage='VkDeviceQueueCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkDeviceQueueCreateFlags.txt[]
sname:VkDeviceQueueCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
ifdef::VK_EXT_global_priority[]
[open,refpage='VkDeviceQueueGlobalPriorityCreateInfoEXT',desc='Specify a system wide priority',type='structs']

View File

@ -71,6 +71,14 @@ pname:vertexOffset value to the index value.
include::../validity/structs/VkPipelineInputAssemblyStateCreateInfo.txt[]
--
[open,refpage='VkPipelineInputAssemblyStateCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineInputAssemblyStateCreateFlags.txt[]
sname:VkPipelineInputAssemblyStateCreateFlags is a bitmask type for setting
a mask, but is currently reserved for future use.
--
[[drawing-primitive-topologies]]
== Primitive Topologies

View File

@ -362,10 +362,26 @@ Each extension which has such dependencies documents them in the
[NOTE]
.Note
==================
====
The Specification does not currently include required extensions in Valid
Usage statements for individual commands and structures, although it might
do so in the future.
Nonetheless, applications must: not use any extension functionality if
dependencies of that extension are not enabled.
==================
====
[[extended-functionality-extensions-compatibility]]
== Extension Compatibility
By default, all extensions are considered compatible with each other and any
core API version, unless otherwise stated.
Thus enabling such extensions does not otherwise alter the behavior of the
application.
Each extension that is mutually exclusive or otherwise incompatible with
another extension or set of extensions documents them in the <<extensions,
appendix summarizing that extension>> and has a corresponding Valid Usage
statement disallowing enabling such an incompatible combination of
extensions at sname:VkInstance creation time or sname:VkDevice creation
time, depending on the type of extensions participating in the interaction.

View File

@ -1660,6 +1660,14 @@ include::../api/enums/VkSampleCountFlagBits.txt[]
--
[open,refpage='VkSampleCountFlags',desc='Bitmask of VkSampleCountFlagBits',type='enums']
--
include::../api/flags/VkSampleCountFlags.txt[]
sname:VkSampleCountFlags is a bitmask type for setting a mask of zero or
more slink:VkSampleCountFlagBits.
--
ifdef::VK_KHR_push_descriptor[]
[open,refpage='VkPhysicalDevicePushDescriptorPropertiesKHR',desc='Structure describing push descriptor limits that can be supported by an implementation',type='structs']
@ -4518,6 +4526,14 @@ flink:vkGetPhysicalDeviceProperties::pname:format:
--
[open,refpage='VkFormatFeatureFlags',desc='Bitmask of VkFormatFeatureFlagBits',type='enums']
--
include::../api/flags/VkFormatFeatureFlags.txt[]
sname:VkFormatFeatureFlags is a bitmask type for setting a mask of zero or
more slink:VkFormatFeatureFlagBits.
--
ifdef::VK_KHR_get_physical_device_properties2[]
[open,refpage='vkGetPhysicalDeviceFormatProperties2KHR',desc='Lists physical device\'s format capabilities',type='protos']
@ -5234,6 +5250,16 @@ fname:vkGetPhysicalDeviceImageFormatProperties is not supported by the
implementation for use in flink:vkCreateImage, then all members of
sname:VkImageFormatProperties will be filled with zero.
[NOTE]
.Note
====
Filling sname:VkImageFormatProperties with zero for unsupported formats is
an exception to the usual rule that output structures have undefined
contents on error.
This exception was unintentional, but is preserved for backwards
compatibility.
====
include::../validity/structs/VkImageFormatProperties.txt[]
--
@ -5325,6 +5351,18 @@ fname:vkGetPhysicalDeviceImageFormatProperties2KHR is not supported by the
implementation for use in flink:vkCreateImage, then all members of
pname:imageFormatProperties will be filled with zero.
[NOTE]
.Note
====
Filling pname:imageFormatProperties with zero for unsupported formats is an
exception to the usual rule that output structures have undefined contents
on error.
This exception was unintentional, but is preserved for backwards
compatibility.
This exeption only applies to pname:imageFormatProperties, not pname:sType,
pname:pNext, or any structures chained from pname:pNext.
====
include::../validity/structs/VkImageFormatProperties2KHR.txt[]
--
@ -5512,6 +5550,14 @@ endif::VK_EXT_external_memory_dma_buf[]
--
[open,refpage='VkExternalMemoryHandleTypeFlagsKHR',desc='Bitmask of VkExternalMemoryHandleTypeFlagBitsKHR',type='enums']
--
include::../api/flags/VkExternalMemoryHandleTypeFlagsKHR.txt[]
sname:VkExternalMemoryHandleTypeFlagsKHR is a bitmask type for setting a
mask of zero or more slink:VkExternalMemoryHandleTypeFlagBitsKHR.
--
[open,refpage='VkExternalImageFormatPropertiesKHR',desc='Structure specifying supported external handle properties',type='structs']
--
@ -5589,6 +5635,14 @@ for the following external handle types:
--
[open,refpage='VkExternalMemoryFeatureFlagsKHR',desc='Bitmask of VkExternalMemoryFeatureFlagBitsKHR',type='enums']
--
include::../api/flags/VkExternalMemoryFeatureFlagsKHR.txt[]
sname:VkExternalMemoryFeatureFlagsKHR is a bitmask type for setting a mask
of zero or more slink:VkExternalMemoryFeatureFlagBitsKHR.
--
endif::VK_KHR_external_memory_capabilities[]
ifdef::VK_KHR_sampler_ycbcr_conversion[]
@ -5925,6 +5979,14 @@ following table:
--
[open,refpage='VkExternalSemaphoreHandleTypeFlagsKHR',desc='Bitmask of VkExternalSemaphoreHandleTypeFlagBitsKHR',type='enums']
--
include::../api/flags/VkExternalSemaphoreHandleTypeFlagsKHR.txt[]
sname:VkExternalSemaphoreHandleTypeFlagsKHR is a bitmask type for setting a
mask of zero or more slink:VkExternalSemaphoreHandleTypeFlagBitsKHR.
--
[open,refpage='VkExternalSemaphorePropertiesKHR',desc='Structure describing supported external semaphore handle features',type='structs']
--
@ -5966,6 +6028,14 @@ include::../api/enums/VkExternalSemaphoreFeatureFlagBitsKHR.txt[]
--
[open,refpage='VkExternalSemaphoreFeatureFlagsKHR',desc='Bitmask of VkExternalSemaphoreFeatureFlagBitsKHR',type='enums']
--
include::../api/flags/VkExternalSemaphoreFeatureFlagsKHR.txt[]
sname:VkExternalSemaphoreFeatureFlagsKHR is a bitmask type for setting a
mask of zero or more slink:VkExternalSemaphoreFeatureFlagBitsKHR.
--
endif::VK_KHR_external_semaphore_capabilities[]
@ -6085,6 +6155,14 @@ following table:
--
[open,refpage='VkExternalFenceHandleTypeFlagsKHR',desc='Bitmask of VkExternalFenceHandleTypeFlagBitsKHR',type='enums']
--
include::../api/flags/VkExternalFenceHandleTypeFlagsKHR.txt[]
sname:VkExternalFenceHandleTypeFlagsKHR is a bitmask type for setting a mask
of zero or more slink:VkExternalFenceHandleTypeFlagBitsKHR.
--
[open,refpage='VkExternalFencePropertiesKHR',desc='Structure describing supported external fence handle features',type='structs']
--
@ -6126,4 +6204,12 @@ include::../api/enums/VkExternalFenceFeatureFlagBitsKHR.txt[]
--
[open,refpage='VkExternalFenceFeatureFlagsKHR',desc='Bitmask of VkExternalFenceFeatureFlagBitsKHR',type='enums']
--
include::../api/flags/VkExternalFenceFeatureFlagsKHR.txt[]
sname:VkExternalFenceFeatureFlagsKHR is a bitmask type for setting a mask of
zero or more slink:VkExternalFenceFeatureFlagBitsKHR.
--
endif::VK_KHR_external_fence_capabilities[]

View File

@ -86,6 +86,14 @@ include::../api/structs/VkPipelineDiscardRectangleStateCreateInfoEXT.txt[]
include::../validity/structs/VkPipelineDiscardRectangleStateCreateInfoEXT.txt[]
--
[open,refpage='VkPipelineDiscardRectangleStateCreateFlagsEXT',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineDiscardRectangleStateCreateFlagsEXT.txt[]
sname:VkPipelineDiscardRectangleStateCreateFlagsEXT is a bitmask type for
setting a mask, but is currently reserved for future use.
--
The sname:VkPipelineDiscardRectangleStateCreateInfoEXT state is set by
adding an instance of this structure to the pname:pNext chain of an instance
of the sname:VkGraphicsPipelineCreateInfo structure and setting the graphics
@ -166,6 +174,8 @@ ename:VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT a fragment within at least one
of the active discard rectangle boxes fails the discard rectangle test, and
the fragment is discarded; otherwise the fragment passes the discard
rectangles test.
The discard rectangles test only applies to <<drawing, drawing commands>>,
not to other commands like clears or copies.
[open,refpage='VkDiscardRectangleModeEXT',desc='Specify the discard rectangle mode',type='enums']
--
@ -261,8 +271,8 @@ Otherwise, the test fails and the fragment is discarded.
For points, lines, and polygons, the scissor rectangle for a primitive is
selected in the same manner as the viewport (see
<<vertexpostproc-viewport,Controlling the Viewport>>).
The scissor rectangles only apply to drawing commands, not to other commands
like clears or copies.
The scissor rectangles test only applies to <<drawing, drawing commands>>,
not to other commands like clears or copies.
It is legal for [eq]#pname:offset.x {plus} pname:extent.width# or
[eq]#pname:offset.y {plus} pname:extent.height# to exceed the dimensions of
@ -351,12 +361,12 @@ remain covered.
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
There used to be a sentence of form "These operations are diagrammed in
figure ((fig-fragops,Fragment Operations)), in the order in which they are
performed" following "described in this chapter." above, but the referred
figure does not yet exist.
==================
====
endif::editing-notes[]
The depth bounds test, stencil test, and depth test are performed for each
@ -516,6 +526,14 @@ include::../api/structs/VkPipelineDepthStencilStateCreateInfo.txt[]
include::../validity/structs/VkPipelineDepthStencilStateCreateInfo.txt[]
--
[open,refpage='VkPipelineDepthStencilStateCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineDepthStencilStateCreateFlags.txt[]
sname:VkPipelineDepthStencilStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
[[fragops-dbt]]
== Depth Bounds Test
@ -678,6 +696,14 @@ include::../api/enums/VkStencilFaceFlagBits.txt[]
--
[open,refpage='VkStencilFaceFlags',desc='Bitmask of VkStencilFaceFlagBits',type='enums']
--
include::../api/flags/VkStencilFaceFlags.txt[]
sname:VkStencilFaceFlags is a bitmask type for setting a mask of zero or
more slink:VkStencilFaceFlagBits.
--
[open,refpage='vkCmdSetStencilWriteMask',desc='Set the stencil write mask dynamic state',type='protos']
--
@ -962,6 +988,14 @@ ename:VK_FALSE.
include::../validity/structs/VkPipelineCoverageToColorStateCreateInfoNV.txt[]
--
[open,refpage='VkPipelineCoverageToColorStateCreateFlagsNV',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineCoverageToColorStateCreateFlagsNV.txt[]
sname:VkPipelineCoverageToColorStateCreateFlagsNV is a bitmask type for
setting a mask, but is currently reserved for future use.
--
endif::VK_NV_fragment_coverage_to_color[]
@ -1082,6 +1116,14 @@ ename:VK_COVERAGE_MODULATION_MODE_NONE_NV.
include::../validity/structs/VkPipelineCoverageModulationStateCreateInfoNV.txt[]
--
[open,refpage='VkPipelineCoverageModulationStateCreateFlagsNV',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineCoverageModulationStateCreateFlagsNV.txt[]
sname:VkPipelineCoverageModulationStateCreateFlagsNV is a bitmask type for
setting a mask, but is currently reserved for future use.
--
[open,refpage='VkCoverageModulationModeNV',desc='Specify the discard rectangle mode',type='enums']
--
Possible values of

View File

@ -93,6 +93,14 @@ elements in the pname:pAttachments array must: be identical.
include::../validity/structs/VkPipelineColorBlendStateCreateInfo.txt[]
--
[open,refpage='VkPipelineColorBlendStateCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineColorBlendStateCreateFlags.txt[]
sname:VkPipelineColorBlendStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
[open,refpage='VkPipelineColorBlendAttachmentState',desc='Structure specifying a pipeline color blend attachment state',type='structs']
--
@ -531,3 +539,11 @@ The color write mask operation is applied regardless of whether blending is
enabled.
--
[open,refpage='VkColorComponentFlags',desc='Bitmask of VkColorComponentFlagBits',type='enums']
--
include::../api/flags/VkColorComponentFlags.txt[]
sname:VkColorComponentFlags is a bitmask type for setting a mask of zero or
more slink:VkColorComponentFlagBits.
--

View File

@ -882,20 +882,28 @@ An application cannot: rely on the state of these unspecified bits.
Any parameter that is a structure containing a pname:sType member must: have
a value of ptext:sType which is a valid elink:VkStructureType value matching
the type of the structure.
As a general rule, the name of this value is obtained by taking the
structure name, stripping the leading etext:Vk, prefixing each capital
letter with etext:_, converting the entire resulting string to upper case,
and prefixing it with etext:VK_STRUCTURE_TYPE_.
For example, structures of type sname:VkImageCreateInfo must: have a
ptext:sType value of ename:VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO.
[open,refpage='VkStructureType',desc='Vulkan structure types (pname:stype)',type='enums']
--
Structure types supported by the Vulkan API include:
include::../api/enums/VkStructureType.txt[]
Each value corresponds to a particular structure with a pname:sType member
with a matching name.
As a general rule, the name of each ename:VkStructureType value is obtained
by taking the name of the structure, stripping the leading etext:Vk,
prefixing each capital letter with etext:_, converting the entire resulting
string to upper case, and prefixing it with etext:VK_STRUCTURE_TYPE_.
For example, structures of type sname:VkImageCreateInfo correspond to a
ename:VkStructureType of ename:VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, and thus
its pname:sType member must: equal that when it is passed to the API.
The values ename:VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO and
ename:VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO are reserved for internal
use by the loader, and do not have corresponding Vulkan structures in this
specification.
The list of supported <<boilerplate-sType,structure types>> is defined in an
appendix.
--
[[fundamentals-validusage-pNext]]
@ -1042,9 +1050,12 @@ ifdef::VK_KHR_external_memory,VK_KHR_external_semaphore,VK_KHR_external_fence[]
valid handle of the specified type.
endif::VK_KHR_external_memory,VK_KHR_external_semaphore,VK_KHR_external_fence[]
If a command returns a run time error, it will leave any result pointers
unmodified, unless other behavior is explicitly defined in the
specification.
If a command returns a run time error, unless otherwise specified any output
parameters will have undefined contents, except that if the output parameter
is a structure with pname:sType and pname:pNext fields, those fields will be
unmodified.
Any structures chained from pname:pNext will also have undefined contents,
except that pname:sType and pname:pNext will be unmodified.
Out of memory errors do not damage any currently existing Vulkan objects.
Objects that have already been successfully created can: still be used by

View File

@ -316,6 +316,14 @@ include::../api/structs/VkPipelineVertexInputStateCreateInfo.txt[]
include::../validity/structs/VkPipelineVertexInputStateCreateInfo.txt[]
--
[open,refpage='VkPipelineVertexInputStateCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineVertexInputStateCreateFlags.txt[]
sname:VkPipelineVertexInputStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
Each vertex input binding is specified by an instance of the
sname:VkVertexInputBindingDescription structure.

View File

@ -231,6 +231,14 @@ include::../api/structs/VkInstanceCreateInfo.txt[]
include::../validity/structs/VkInstanceCreateInfo.txt[]
--
[open,refpage='VkInstanceCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkInstanceCreateFlags.txt[]
sname:VkInstanceCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
ifdef::VK_EXT_validation_flags[]
include::VK_EXT_validation_flags.txt[]
endif::VK_EXT_validation_flags[]

View File

@ -160,7 +160,7 @@ expressing an operation.
[NOTE]
.Note
==================
====
There is an important distinction between *cannot* and *must not*, as used
in this Specification.
*Cannot* means something the application literally is unable to express or
@ -168,7 +168,7 @@ accomplish through the API, while *must not* means something that the
application is capable of expressing through the API, but that the
consequences of doing so are undefined and potentially unrecoverable for the
implementation.
==================
====
ifdef::editing-notes[]
[NOTE]

View File

@ -698,6 +698,14 @@ endif::VK_KHX_device_group_creation[]
--
[open,refpage='VkMemoryHeapFlags',desc='Bitmask of VkMemoryHeapFlagBits',type='enums']
--
include::../api/flags/VkMemoryHeapFlags.txt[]
sname:VkMemoryHeapFlags is a bitmask type for setting a mask of zero or more
slink:VkMemoryHeapFlagBits.
--
[open,refpage='VkMemoryType',desc='Structure specifying memory type',type='structs']
--
@ -748,6 +756,14 @@ include::../api/enums/VkMemoryPropertyFlagBits.txt[]
--
[open,refpage='VkMemoryPropertyFlags',desc='Bitmask of VkMemoryPropertyFlagBits',type='enums']
--
include::../api/flags/VkMemoryPropertyFlags.txt[]
sname:VkMemoryPropertyFlags is a bitmask type for setting a mask of zero or
more slink:VkMemoryPropertyFlagBits.
--
[open,refpage='VkDeviceMemory',desc='Opaque handle to a device memory object',type='handles']
--
@ -1775,6 +1791,14 @@ include::../api/enums/VkMemoryAllocateFlagBitsKHX.txt[]
--
[open,refpage='VkMemoryAllocateFlagsKHX',desc='Bitmask of VkMemoryAllocateFlagBitsKHX',type='enums']
--
include::../api/flags/VkMemoryAllocateFlagsKHX.txt[]
sname:VkMemoryAllocateFlagsKHX is a bitmask type for setting a mask of zero
or more slink:VkMemoryAllocateFlagBitsKHX.
--
endif::VK_KHX_device_group[]
[open,refpage='vkFreeMemory',desc='Free GPU memory',type='protos']
@ -1930,6 +1954,14 @@ endif::VK_KHX_device_group[]
include::../validity/protos/vkMapMemory.txt[]
--
[open,refpage='VkMemoryMapFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkMemoryMapFlags.txt[]
sname:VkMemoryMapFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
Two commands are provided to enable applications to work with non-coherent
memory allocations: fname:vkFlushMappedMemoryRanges and
fname:vkInvalidateMappedMemoryRanges.
@ -2219,4 +2251,12 @@ but would scissor the rendering to only update local memory.
--
[open,refpage='VkPeerMemoryFeatureFlagsKHX',desc='Bitmask of VkPeerMemoryFeatureFlagBitsKHX',type='enums']
--
include::../api/flags/VkPeerMemoryFeatureFlagsKHX.txt[]
sname:VkPeerMemoryFeatureFlagsKHX is a bitmask type for setting a mask of
zero or more slink:VkPeerMemoryFeatureFlagBitsKHX.
--
endif::VK_KHX_device_group[]

View File

@ -330,6 +330,14 @@ endif::VK_EXT_shader_stencil_export[]
include::../validity/structs/VkPipelineShaderStageCreateInfo.txt[]
--
[open,refpage='VkPipelineShaderStageCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineShaderStageCreateFlags.txt[]
sname:VkPipelineShaderStageCreateFlags is a bitmask type for setting a mask,
but is currently reserved for future use.
--
[open,refpage='VkShaderStageFlagBits',desc='Bitmask specifying a pipeline stage',type='enums']
--
@ -356,6 +364,14 @@ include::../api/enums/VkShaderStageFlagBits.txt[]
--
[open,refpage='VkShaderStageFlags',desc='Bitmask of VkShaderStageFlagBits',type='enums']
--
include::../api/flags/VkShaderStageFlags.txt[]
sname:VkShaderStageFlags is a bitmask type for setting a mask of zero or
more slink:VkShaderStageFlagBits.
--
[[pipelines-graphics]]
== Graphics Pipelines
@ -851,6 +867,14 @@ information.
--
[open,refpage='VkPipelineCreateFlags',desc='Bitmask of VkPipelineCreateFlagBits',type='enums']
--
include::../api/flags/VkPipelineCreateFlags.txt[]
sname:VkPipelineCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkPipelineCreateFlagBits.
--
[open,refpage='VkPipelineDynamicStateCreateInfo',desc='Structure specifying parameters of a newly created pipeline dynamic state',type='structs']
--
@ -876,6 +900,14 @@ include::../api/structs/VkPipelineDynamicStateCreateInfo.txt[]
include::../validity/structs/VkPipelineDynamicStateCreateInfo.txt[]
--
[open,refpage='VkPipelineDynamicStateCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineDynamicStateCreateFlags.txt[]
sname:VkPipelineDynamicStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
[open,refpage='VkDynamicState',desc='Indicate which dynamic state is taken from dynamic state commands',type='enums']
--
@ -1228,6 +1260,14 @@ include::../api/structs/VkPipelineCacheCreateInfo.txt[]
include::../validity/structs/VkPipelineCacheCreateInfo.txt[]
--
[open,refpage='VkPipelineCacheCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineCacheCreateFlags.txt[]
sname:VkPipelineCacheCreateFlags is a bitmask type for setting a mask, but
is currently reserved for future use.
--
[open,refpage='vkMergePipelineCaches',desc='Combine the data stores of pipeline caches',type='protos']
--

View File

@ -105,6 +105,14 @@ endif::VK_NV_fill_rectangle[]
include::../validity/structs/VkPipelineRasterizationStateCreateInfo.txt[]
--
[open,refpage='VkPipelineRasterizationStateCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineRasterizationStateCreateFlags.txt[]
sname:VkPipelineRasterizationStateCreateFlags is a bitmask type for setting
a mask, but is currently reserved for future use.
--
[open,refpage='VkPipelineMultisampleStateCreateInfo',desc='Structure specifying parameters of a newly created pipeline multisample state',type='structs']
--
@ -156,6 +164,14 @@ endif::VK_NV_framebuffer_mixed_samples[]
include::../validity/structs/VkPipelineMultisampleStateCreateInfo.txt[]
--
[open,refpage='VkPipelineMultisampleStateCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineMultisampleStateCreateFlags.txt[]
sname:VkPipelineMultisampleStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
Rasterization only produces fragments corresponding to pixels in the
framebuffer.
Fragments which would be produced by application of any of the primitive
@ -890,6 +906,14 @@ been discarded.
--
[open,refpage='VkCullModeFlags',desc='Bitmask of VkCullModeFlagBits',type='enums']
--
include::../api/flags/VkCullModeFlags.txt[]
sname:VkCullModeFlags is a bitmask type for setting a mask of zero or more
slink:VkCullModeFlagBits.
--
The rule for determining which fragments are produced by polygon
rasterization is called _point sampling_.
The two-dimensional projection obtained by taking the x and y framebuffer
@ -1210,7 +1234,7 @@ implementation sets
sname:VkPhysicalDeviceConservativeRasterizationPropertiesEXT::pname:conservativePointAndLineRasterization
to pname:VK_TRUE.
sname: VkPipelineRasterizationConservativeStateCreateInfoEXT is defined as:
sname:VkPipelineRasterizationConservativeStateCreateInfoEXT is defined as:
include::../api/structs/VkPipelineRasterizationConservativeStateCreateInfoEXT.txt[]
@ -1236,6 +1260,14 @@ include::../api/structs/VkPipelineRasterizationConservativeStateCreateInfoEXT.tx
include::../validity/structs/VkPipelineRasterizationConservativeStateCreateInfoEXT.txt[]
--
[open,refpage='VkPipelineRasterizationConservativeStateCreateFlagsEXT',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineRasterizationConservativeStateCreateFlagsEXT.txt[]
sname:VkPipelineRasterizationConservativeStateCreateFlagsEXT is a bitmask
type for setting a mask, but is currently reserved for future use.
--
[open,refpage='VkConservativeRasterizationModeEXT',desc='Specify the conservative rasterization mode',type='enums']
--

View File

@ -90,6 +90,14 @@ ename:VK_QUERY_TYPE_PIPELINE_STATISTICS.
include::../validity/structs/VkQueryPoolCreateInfo.txt[]
--
[open,refpage='VkQueryPoolCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkQueryPoolCreateFlags.txt[]
sname:VkQueryPoolCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
[open,refpage='vkDestroyQueryPool',desc='Destroy a query pool object',type='protos']
--
@ -350,6 +358,14 @@ include::../api/enums/VkQueryControlFlagBits.txt[]
--
[open,refpage='VkQueryControlFlags',desc='Bitmask of VkQueryControlFlagBits',type='enums']
--
include::../api/flags/VkQueryControlFlags.txt[]
sname:VkQueryControlFlags is a bitmask type for setting a mask of zero or
more slink:VkQueryControlFlagBits.
--
[open,refpage='vkCmdEndQuery',desc='Ends a query',type='protos']
--
@ -580,6 +596,14 @@ include::../api/enums/VkQueryResultFlagBits.txt[]
--
[open,refpage='VkQueryResultFlags',desc='Bitmask of VkQueryResultFlagBits',type='enums']
--
include::../api/flags/VkQueryResultFlags.txt[]
sname:VkQueryResultFlags is a bitmask type for setting a mask of zero or
more slink:VkQueryResultFlagBits.
--
[open,refpage='vkCmdCopyQueryPoolResults',desc='Copy the results of queries in a query pool to a buffer object',type='protos']
--
@ -883,6 +907,14 @@ fname:vkGetQueryPoolResults).
--
[open,refpage='VkQueryPipelineStatisticFlags',desc='Bitmask of VkQueryPipelineStatisticFlagBits',type='enums']
--
include::../api/flags/VkQueryPipelineStatisticFlags.txt[]
sname:VkQueryPipelineStatisticFlags is a bitmask type for setting a mask of
zero or more slink:VkQueryPipelineStatisticFlagBits.
--
[[queries-timestamps]]
== Timestamp Queries

View File

@ -219,6 +219,14 @@ endif::VK_KHR_maintenance2[]
include::../validity/structs/VkRenderPassCreateInfo.txt[]
--
[open,refpage='VkRenderPassCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkRenderPassCreateFlags.txt[]
sname:VkRenderPassCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
ifdef::VK_KHX_multiview[]
[[renderpass-multiview]]
@ -577,6 +585,14 @@ include::../api/enums/VkAttachmentDescriptionFlagBits.txt[]
--
[open,refpage='VkAttachmentDescriptionFlags',desc='Bitmask of VkAttachmentDescriptionFlagBits',type='enums']
--
include::../api/flags/VkAttachmentDescriptionFlags.txt[]
sname:VkAttachmentDescriptionFlags is a bitmask type for setting a mask of
zero or more slink:VkAttachmentDescriptionFlagBits.
--
[open,refpage='VkAttachmentLoadOp',desc='Specify how contents of an attachment are treated at the beginning of a subpass',type='enums']
--
@ -880,6 +896,14 @@ extensions are enabled in this build of the specification.
endif::VK_NVX_multiview_per_view_attributes[]
--
[open,refpage='VkSubpassDescriptionFlags',desc='Bitmask of VkSubpassDescriptionFlagBits',type='enums']
--
include::../api/flags/VkSubpassDescriptionFlags.txt[]
sname:VkSubpassDescriptionFlags is a bitmask type for setting a mask of zero
or more slink:VkSubpassDescriptionFlagBits.
--
[open,refpage='VkAttachmentReference',desc='Structure specifying an attachment reference',type='structs']
--
@ -1568,6 +1592,14 @@ endif::VK_KHR_maintenance1[]
include::../validity/structs/VkFramebufferCreateInfo.txt[]
--
[open,refpage='VkFramebufferCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkFramebufferCreateFlags.txt[]
sname:VkFramebufferCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
[open,refpage='vkDestroyFramebuffer',desc='Destroy a framebuffer object',type='protos']
--

View File

@ -83,10 +83,10 @@ include::../api/structs/VkBufferCreateInfo.txt[]
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
(Jon) Should the constraint on usage != 0 be converted to a Valid Usage
statement? See gitlab #854.
==================
====
endif::editing-notes[]
.Valid Usage
@ -209,6 +209,14 @@ endif::VK_NVX_device_generated_commands[]
--
[open,refpage='VkBufferUsageFlags',desc='Bitmask of VkBufferUsageFlagBits',type='enums']
--
include::../api/flags/VkBufferUsageFlags.txt[]
sname:VkBufferUsageFlags is a bitmask type for setting a mask of zero or
more slink:VkBufferUsageFlagBits.
--
[open,refpage='VkBufferCreateFlagBits',desc='Bitmask specifying additional parameters of a buffer',type='enums']
--
@ -236,6 +244,14 @@ memory features supported on a device.
--
[open,refpage='VkBufferCreateFlags',desc='Bitmask of VkBufferCreateFlagBits',type='enums']
--
include::../api/flags/VkBufferCreateFlags.txt[]
sname:VkBufferCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkBufferCreateFlagBits.
--
ifdef::VK_NV_dedicated_allocation[]
[open,refpage='VkDedicatedAllocationBufferCreateInfoNV',desc='Specify that a buffer is bound to a dedicated memory resource',type='structs']
@ -424,6 +440,14 @@ include::../api/structs/VkBufferViewCreateInfo.txt[]
include::../validity/structs/VkBufferViewCreateInfo.txt[]
--
[open,refpage='VkBufferViewCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkBufferViewCreateFlags.txt[]
sname:VkBufferViewCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
[open,refpage='vkDestroyBufferView',desc='Destroy a buffer view object',type='protos']
--
@ -1179,6 +1203,14 @@ include::../api/enums/VkImageUsageFlagBits.txt[]
--
[open,refpage='VkImageUsageFlags',desc='Bitmask of VkImageUsageFlagBits',type='enums']
--
include::../api/flags/VkImageUsageFlags.txt[]
sname:VkImageUsageFlags is a bitmask type for setting a mask of zero or more
slink:VkImageUsageFlagBits.
--
[open,refpage='VkImageCreateFlagBits',desc='Bitmask specifying additional parameters of an image',type='enums']
--
@ -1280,6 +1312,14 @@ details.
--
[open,refpage='VkImageCreateFlags',desc='Bitmask of VkImageCreateFlagBits',type='enums']
--
include::../api/flags/VkImageCreateFlags.txt[]
sname:VkImageCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkImageCreateFlagBits.
--
[open,refpage='VkImageType',desc='Specifies the type of an image object',type='enums']
--
@ -2331,6 +2371,14 @@ endif::VK_KHR_sampler_ycbcr_conversion[]
include::../validity/structs/VkImageViewCreateInfo.txt[]
--
[open,refpage='VkImageViewCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkImageViewCreateFlags.txt[]
sname:VkImageViewCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
ifdef::VK_KHR_maintenance2[]
[open,refpage='VkImageViewUsageCreateInfoKHR',desc='Specify the intended usage of an image view',type='structs']
@ -2481,11 +2529,13 @@ endif::VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-VkImageSubresourceRange-layerCount-01721]]
If pname:layerCount is not ename:VK_REMAINING_ARRAY_LAYERS, it must: be
greater than `0`
ifdef::VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-VkImageSubresourceRange-aspectMask-01670]]
If pname:aspectMask includes ename:VK_IMAGE_ASPECT_COLOR_BIT, then it
must: not include any of ename:VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
ename:VK_IMAGE_ASPECT_PLANE_1_BIT_KHR, or
ename:VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
endif::VK_KHR_sampler_ycbcr_conversion[]
****
include::../validity/structs/VkImageSubresourceRange.txt[]
@ -2507,6 +2557,14 @@ include::../api/enums/VkImageAspectFlagBits.txt[]
--
[open,refpage='VkImageAspectFlags',desc='Bitmask of VkImageAspectFlagBits',type='enums']
--
include::../api/flags/VkImageAspectFlags.txt[]
sname:VkImageAspectFlags is a bitmask type for setting a mask of zero or
more slink:VkImageAspectFlagBits.
--
[open,refpage='VkComponentMapping',desc='Structure specifying a color component mapping',type='structs']
--

View File

@ -119,7 +119,7 @@ endif::VK_KHR_sampler_ycbcr_conversion[]
[NOTE]
.Mapping of OpenGL to Vulkan filter modes
==================
====
pname:magFilter values of ename:VK_FILTER_NEAREST and ename:VK_FILTER_LINEAR
directly correspond to code:GL_NEAREST and code:GL_LINEAR magnification
filters.
@ -144,7 +144,7 @@ non-zero and minification to be performed, while still always rounding down
to the base level.
If the pname:minFilter and pname:magFilter are equal, then using a
pname:maxLod of zero also works.
==================
=
The maximum number of sampler objects which can: be simultaneously created
on a device is implementation-dependent and specified by the
@ -247,6 +247,14 @@ endif::VK_EXT_sampler_filter_minmax[]
include::../validity/structs/VkSamplerCreateInfo.txt[]
--
[open,refpage='VkSamplerCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkSamplerCreateFlags.txt[]
sname:VkSamplerCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
ifdef::VK_EXT_sampler_filter_minmax[]
[open,refpage='VkSamplerReductionModeCreateInfoEXT',desc='Structure specifying sampler reduction mode',type='structs']

View File

@ -150,6 +150,14 @@ endif::VK_NV_glsl_shader[]
include::../validity/structs/VkShaderModuleCreateInfo.txt[]
--
[open,refpage='VkShaderModuleCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkShaderModuleCreateFlags.txt[]
sname:VkShaderModuleCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
ifdef::VK_EXT_validation_cache[]
include::VK_EXT_validation_cache/shader-module-validation-cache.txt[]
endif::VK_EXT_validation_cache[]
@ -361,14 +369,13 @@ determine that the vertex shader invocations will produce identical results.
[NOTE]
.Note
==================
====
It is implementation-dependent when and if results of vertex shading are
reused, and thus how many times the vertex shader will be executed.
This is true also if the vertex shader contains stores or atomic operations
(see <<features-features-vertexPipelineStoresAndAtomics,
pname:vertexPipelineStoresAndAtomics>>).
==================
====
[[shaders-tessellation-control]]
@ -789,6 +796,14 @@ include::../api/structs/VkValidationCacheCreateInfoEXT.txt[]
include::../validity/structs/VkValidationCacheCreateInfoEXT.txt[]
--
[open,refpage='VkValidationCacheCreateFlagsEXT',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkValidationCacheCreateFlagsEXT.txt[]
sname:VkValidationCacheCreateFlagsEXT is a bitmask type for setting a mask,
but is currently reserved for future use.
--
[open,refpage='vkMergeValidationCachesEXT',desc='Combine the data stores of validation caches',type='protos']
--

View File

@ -211,10 +211,10 @@ Formatted accesses to unbound memory may: still alter some component values
in the natural way for those accesses, e.g. substituting a value of one for
alpha in formats that do not have an alpha component.
=======
====
Example: Reading the alpha component of an unbacked ename:VK_FORMAT_R8_UNORM
image will return a value of [eq]#1.0f#.
=======
====
See <<devsandqueues-physical-device-enumeration,Physical Device
Enumeration>> for instructions for retrieving physical device properties.
@ -816,6 +816,14 @@ include::../api/enums/VkSparseImageFormatFlagBits.txt[]
--
[open,refpage='VkSparseImageFormatFlags',desc='Bitmask of VkSparseImageFormatFlagBits',type='enums']
--
include::../api/flags/VkSparseImageFormatFlags.txt[]
sname:VkSparseImageFormatFlags is a bitmask type for setting a mask of zero
or more slink:VkSparseImageFormatFlagBits.
--
[open,refpage='vkGetPhysicalDeviceSparseImageFormatProperties',desc='Retrieve properties of an image format applied to sparse images',type='protos']
--
@ -1295,6 +1303,14 @@ include::../api/enums/VkSparseMemoryBindFlagBits.txt[]
--
[open,refpage='VkSparseMemoryBindFlags',desc='Bitmask of VkSparseMemoryBindFlagBits',type='enums']
--
include::../api/flags/VkSparseMemoryBindFlags.txt[]
sname:VkSparseMemoryBindFlags is a bitmask type for setting a mask of zero
or more slink:VkSparseMemoryBindFlagBits.
--
[open,refpage='VkSparseBufferMemoryBindInfo',desc='Structure specifying a sparse buffer memory bind operation',type='structs']
--
@ -1341,7 +1357,7 @@ include::../validity/structs/VkSparseImageOpaqueMemoryBindInfo.txt[]
[NOTE]
.Note
==================
====
This operation is normally used to bind memory to fully-resident sparse
images or for mip tail regions of partially resident images.
However, it can: also be used to bind memory for the entire binding range of
@ -1367,7 +1383,7 @@ However, it _is_ defined to be within [eq]#[imageMipTailOffset,
imageMipTailOffset {plus} imageMipTailSize)# for the metadata aspect.
See slink:VkSparseMemoryBind for the full constraints on binding region with
this flag present.
==================
====
ifdef::editing-notes[]
[NOTE]

View File

@ -365,6 +365,14 @@ between queues.
--
[open,refpage='VkPipelineStageFlags',desc='Bitmask of VkPipelineStageFlagBits',type='enums']
--
include::../api/flags/VkPipelineStageFlags.txt[]
sname:VkPipelineStageFlags is a bitmask type for setting a mask of zero or
more slink:VkPipelineStageFlagBits.
--
[[synchronization-pipeline-stages-masks]]
If a synchronization command includes a source stage mask, its first
<<synchronization-dependencies-scopes, synchronization scope>> only includes
@ -702,6 +710,14 @@ explicit memory barrier.
--
[open,refpage='VkAccessFlags',desc='Bitmask of VkAccessFlagBits',type='enums']
--
include::../api/flags/VkAccessFlags.txt[]
sname:VkAccessFlags is a bitmask type for setting a mask of zero or more
slink:VkAccessFlagBits.
--
[[synchronization-framebuffer-regions]]
=== Framebuffer Region Dependencies
@ -1007,6 +1023,14 @@ include::../api/enums/VkFenceCreateFlagBits.txt[]
--
[open,refpage='VkFenceCreateFlags',desc='Bitmask of VkFenceCreateFlagBits',type='enums']
--
include::../api/flags/VkFenceCreateFlags.txt[]
sname:VkFenceCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkFenceCreateFlagBits.
--
ifdef::VK_KHR_external_fence[]
[open,refpage='VkExportFenceCreateInfoKHR',desc='Structure specifying handle types that can be exported from a fence',type='structs']
@ -1835,6 +1859,14 @@ include::../api/enums/VkFenceImportFlagBitsKHR.txt[]
--
[open,refpage='VkFenceImportFlagsKHR',desc='Bitmask of VkFenceImportFlagBitsKHR',type='enums']
--
include::../api/flags/VkFenceImportFlagsKHR.txt[]
sname:VkFenceImportFlagsKHR is a bitmask type for setting a mask of zero or
more slink:VkFenceImportFlagBitsKHR.
--
endif::VK_KHR_external_fence_win32,VK_KHR_external_fence_fd[]
endif::VK_KHR_external_fence[]
@ -1916,6 +1948,14 @@ include::../api/structs/VkSemaphoreCreateInfo.txt[]
include::../validity/structs/VkSemaphoreCreateInfo.txt[]
--
[open,refpage='VkSemaphoreCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkSemaphoreCreateFlags.txt[]
sname:VkSemaphoreCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
ifdef::VK_KHR_external_semaphore[]
[open,refpage='VkExportSemaphoreCreateInfoKHR',desc='Structure specifying handle types that can be exported from a semaphore',type='structs']
@ -2706,6 +2746,14 @@ These bits have the following meanings:
--
[open,refpage='VkSemaphoreImportFlagsKHR',desc='Bitmask of VkSemaphoreImportFlagBitsKHR',type='enums']
--
include::../api/flags/VkSemaphoreImportFlagsKHR.txt[]
sname:VkSemaphoreImportFlagsKHR is a bitmask type for setting a mask of zero
or more slink:VkSemaphoreImportFlagBitsKHR.
--
endif::VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_fd[]
endif::VK_KHR_external_semaphore[]
@ -2770,6 +2818,14 @@ include::../api/structs/VkEventCreateInfo.txt[]
include::../validity/structs/VkEventCreateInfo.txt[]
--
[open,refpage='VkEventCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkEventCreateFlags.txt[]
sname:VkEventCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
[open,refpage='vkDestroyEvent',desc='Destroy an event object',type='protos']
--
@ -3386,6 +3442,14 @@ endif::VK_KHX_device_group[]
--
[open,refpage='VkDependencyFlags',desc='Bitmask of VkDependencyFlagBits',type='enums']
--
include::../api/flags/VkDependencyFlags.txt[]
sname:VkDependencyFlags is a bitmask type for setting a mask of zero or more
slink:VkDependencyFlagBits.
--
[[synchronization-pipeline-barriers-subpass-self-dependencies]]
=== Subpass Self-dependency

View File

@ -515,6 +515,14 @@ include::../api/structs/VkPipelineTessellationStateCreateInfo.txt[]
include::../validity/structs/VkPipelineTessellationStateCreateInfo.txt[]
--
[open,refpage='VkPipelineTessellationStateCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineTessellationStateCreateFlags.txt[]
sname:VkPipelineTessellationStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
ifdef::VK_KHR_maintenance2[]
[open,refpage='VkPipelineTessellationDomainOriginStateCreateInfoKHR',desc='Structure specifying the orientation of the tessellation domain',type='structs']

View File

@ -16,13 +16,13 @@ elements (_texels_) in the image.
[NOTE]
.Note
==================
====
Texel is a term which is a combination of the words texture and element.
Early interactive computer graphics supported texture operations on
textures, a small subset of the image operations on images described here.
The discrete samples remain essentially equivalent, however, so we retain
the historical term texel to refer to them.
==================
====
SPIR-V Image Instructions include the following functionality:
@ -184,12 +184,12 @@ two dimensional image.
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
(Bill) These Conversion Formulas will likely move to Section 2.7 Fixed-Point
Data Conversions (RGB to sRGB and sRGB to RGB) and section 2.6 Numeric
Representation and Computation (RGB to Shared Exponent and Shared Exponent
to RGB)
==================
====
endif::editing-notes[]
@ -221,11 +221,11 @@ sharedexp_{max} & = \frac{(2^N-1)}{2^N} \times 2^{(E_{max}-B)}
[NOTE]
.Note
==================
====
[eq]#NaN#, if supported, is handled as in <<ieee-754,IEEE 754-2008>>
`minNum()` and `maxNum()`.
That is the result is a [eq]#NaN# is mapped to zero.
==================
====
The largest clamped component, [eq]#max~clamped~# is determined:
@ -650,12 +650,12 @@ invalid texel is undefined.
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
(Bill) This is not currently catching this significant case.
For opImageFetch, which fetches from an *image* not a buffer, the result is
defined if pname:robustBufferAccess is enabled.
==================
====
endif::editing-notes[]
If the
@ -958,18 +958,18 @@ pname:chromaFilter is ename:VK_FILTER_NEAREST for explicit reconstruction.
concisely as follows:
+
[width="30%",options="header",cols="5,1"]
|==========
|====
| pname:xChromaOffset | &#948;~i~
| etext:COSITED_EVEN | 0
| etext:MIDPOINT | 0.5
|==========
|====
+
[width="30%",options="header",cols="5,1"]
|==========
|====
| pname:yChromaOffset | &#948;~j~
| etext:COSITED_EVEN | 0
| etext:MIDPOINT | 0.5
|==========
|====
+
[latexmath]
+++++
@ -991,14 +991,14 @@ pname:chromaFilter is ename:VK_FILTER_NEAREST for explicit reconstruction.
+++++
[NOTE]
======
====
In the case where the texture itself is bilinearly interpolated as described
in <<textures-texel-filtering,Texel Filtering>>, thus requiring four
full-color samples for the filtering operation, and where the reconstruction
of these samples uses bilinear interpolation in the chroma channels due to
pname:chromaFilter=ename:VK_FILTER_LINEAR, up to nine chroma samples may be
required, depending on the sample location.
======
====
[[textures-implict-reconstruction]]
@ -1551,13 +1551,13 @@ t_{\textit{face}} & =
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
(Bill) Note that we never revisited ARB_texture_cubemap after we introduced
dependent texture fetches (ARB_fragment_program and ARB_fragment_shader).
The derivatives of [eq]#s~face~# and [eq]#t~face~# are only valid for
non-dependent texture fetches (pre OpenGL 2.0).
==================
====
endif::editing-notes[]
@ -1640,7 +1640,7 @@ maximum scale factors.
ifdef::editing-notes[]
[NOTE]
.editing-note
==================
====
(Bill) For reviewers only - anticipating questions.
We only support implicit derivatives for normalized texel coordinates.
@ -1653,7 +1653,7 @@ and OpenGL ES specifications.
Also there is no reason to have conditional application of [eq]#w~base~,
h~base~, d~base~# for rectangle textures either, since they do not support
implicit derivatives.
==================
====
endif::editing-notes[]

View File

@ -71,6 +71,14 @@ include::../api/structs/VkPipelineViewportSwizzleStateCreateInfoNV.txt[]
include::../validity/structs/VkPipelineViewportSwizzleStateCreateInfoNV.txt[]
--
[open,refpage='VkPipelineViewportSwizzleStateCreateFlagsNV',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineViewportSwizzleStateCreateFlagsNV.txt[]
sname:VkPipelineViewportSwizzleStateCreateFlagsNV is a bitmask type for
setting a mask, but is currently reserved for future use.
--
The sname:VkPipelineViewportSwizzleStateCreateInfoNV state is set by adding
an instance of this structure to the pname:pNext chain of an instance of the
sname:VkPipelineViewportStateCreateInfo structure and setting the graphics
@ -507,6 +515,14 @@ endif::VK_NV_clip_space_w_scaling[]
include::../validity/structs/VkPipelineViewportStateCreateInfo.txt[]
--
[open,refpage='VkPipelineViewportStateCreateFlags',desc='Reserved for future use',type='enums']
--
include::../api/flags/VkPipelineViewportStateCreateFlags.txt[]
sname:VkPipelineViewportStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
ifndef::VK_NV_viewport_array2+VK_EXT_shader_viewport_index_layer[]
If a geometry shader is active and has an output variable decorated with
code:ViewportIndex, the viewport transformation uses the viewport

View File

@ -545,11 +545,11 @@ if __name__ == '__main__':
# For Flags (e.g. Vk*Flags types), it's easy to autogenerate pages.
if not results.noauto:
for page in flags.keys():
if not (page in genDict.keys()):
logWarn('Autogenerating flags page:', page,
'which should be included in the spec')
autoGenFlagsPage(baseDir, page)
# autoGenFlagsPage is no longer needed because they are added to
# the spec sources now.
# for page in flags.keys():
# if not (page in genDict.keys()):
# autoGenFlagsPage(baseDir, page)
# autoGenHandlePage is no longer needed because they are added to
# the spec sources now.
@ -558,6 +558,7 @@ if __name__ == '__main__':
# autoGenHandlePage(baseDir, page)
sections = [
[ flags, 'Flag Types' ],
[ enums, 'Enumerated Types' ],
[ structs, 'Structures' ],
[ protos, 'Prototypes' ],

View File

@ -48,6 +48,7 @@ paradigms that require rethinking the existing mechanisms:
single global set of token values.
[[extensions-rules]]
== General Rules/Guidelines
Some general rules to simplify the specific rules below:
@ -59,13 +60,11 @@ Some general rules to simplify the specific rules below:
** However, layers can expose their own extensions, which in turn are
allowed to expose new commands and tokens.
* All extensions must be registered with Khronos.
* Extensions must be strictly additive and backwards-compatible.
That is, extensions must not remove existing functionality, or change
existing default behaviors.
A Vulkan implementation may support any combination of extensions, but
applications written using only the core API, or a subset of the
supported extensions, must continue to work in such an implementation
without changes in behavior.
* Extensions in general are strictly additive and backwards-compatible
with each other and with the core API.
However, as described in more detail the Fundamentals chapter of the
<<vulkan-spec,Vulkan API Specification>>, explicit incompatibilities may
exist, and must be documented.
[[extensions-naming-conventions]]
== Extension and Layer Naming Conventions

View File

@ -173,6 +173,8 @@ of a structure as a "`color space`" value.
| pname:pNext-chain +
pname:pNext extension chain
|
| general-purpose
| general purpose| When used as an adjective
| swapchain | swap chain | Exception due to heavy use in WSI extensions
| happen-before +
happen-after | happen before +

View File

@ -157,6 +157,10 @@ include::style/vuid.txt[]
= Revision History
* 2018-01-10 - Move details of mandated extension compatibility from the
<<extensions-rules, General Rules/Guidelines>> section into the
Fundamentals section of the API Specification, where they are changed
slightly to allow explicit incompatibilies (public issue 638).
* 2017-10-27 - Add language about proper use of "`valid pointer`" and
"`pointer to valid object`" for valid usage statements, in the
<<sample-command, Sample Command Description>> section (related to public

View File

@ -107,7 +107,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<type category="define">// Vulkan 1.0 version number
#define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)// Patch version should always be set to 0</type>
<type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 67</type>
#define <name>VK_HEADER_VERSION</name> 68</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -3531,7 +3531,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<enum value="30" name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"/>
<enum value="31" name="VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT"/>
<enum value="32" name="VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT"/>
<enum value="33" name="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT"/>
<enum value="33" name="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"/>
</enums>
<enums name="VkRasterizationOrderAMD" type="enum">
<enum value="0" name="VK_RASTERIZATION_ORDER_STRICT_AMD"/>
@ -7389,6 +7389,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"/>
<enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_VALIDATION_CACHE_EXT" comment="VkValidationCacheEXT"/>
<enum value="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT"/>
<type name="VkValidationCacheEXT"/>
<type name="VkValidationCacheCreateInfoEXT"/>
<type name="VkShaderModuleValidationCacheCreateInfoEXT"/>
@ -7623,5 +7624,11 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<enum value="&quot;VK_GOOGLE_extension_196&quot;" name="VK_GOOGLE_EXTENSION_196_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_EXT_extension_197" number="197" author="Baldur Karlsson" contact="baldurk@baldurk.org" supported="disabled">
<require>
<enum value="0" name="VK_EXT_EXTENSION_197_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_197&quot;" name="VK_EXT_EXTENSION_197_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
</registry>

View File

@ -43,7 +43,7 @@ extern "C" {
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file
#define VK_HEADER_VERSION 67
#define VK_HEADER_VERSION 68
#define VK_NULL_HANDLE 0
@ -5242,12 +5242,12 @@ typedef enum VkDebugReportObjectTypeEXT {
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33,
VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
} VkDebugReportObjectTypeEXT;
@ -6904,6 +6904,7 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
#define VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT
typedef enum VkValidationCacheHeaderVersionEXT {