From 57692834480e19201bb9efe9a67f7a65876b7a32 Mon Sep 17 00:00:00 2001 From: Jon Leech Date: Mon, 15 Jan 2018 05:29:25 -0800 Subject: [PATCH] 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 <> 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 <> 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 <> 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. --- ChangeLog.txt | 50 +++++++ doc/specs/vulkan/Makefile | 2 +- .../vulkan/appendices/VK_AMD_gcn_shader.txt | 4 +- .../VK_AMD_gpu_shader_half_float.txt | 4 +- .../appendices/VK_AMD_shader_ballot.txt | 4 +- ...K_AMD_shader_explicit_vertex_parameter.txt | 4 +- .../VK_AMD_shader_trinary_minmax.txt | 4 +- .../vulkan/appendices/VK_KHR_display.txt | 4 +- .../VK_KHR_external_memory_win32.txt | 4 +- doc/specs/vulkan/appendices/boilerplate.txt | 141 ++---------------- doc/specs/vulkan/appendices/invariance.txt | 4 +- .../vulkan/chapters/VK_AMD_shader_info.txt | 4 +- .../vulkan/chapters/VK_EXT_debug_report.txt | 8 + .../surface_capabilities.txt | 9 ++ .../chapters/VK_KHR_display/display.txt | 8 + .../vulkan/chapters/VK_KHR_surface/wsi.txt | 25 ++++ .../vulkan/chapters/VK_KHR_swapchain/wsi.txt | 8 + .../indirectcommands.txt | 8 + .../objecttable.txt | 8 + .../external_image_format.txt | 8 + .../import_memory_win32.txt | 9 ++ doc/specs/vulkan/chapters/cmdbuffers.txt | 34 ++++- doc/specs/vulkan/chapters/descriptorsets.txt | 40 +++++ doc/specs/vulkan/chapters/devsandqueues.txt | 24 +++ doc/specs/vulkan/chapters/drawing.txt | 8 + doc/specs/vulkan/chapters/extensions.txt | 20 ++- doc/specs/vulkan/chapters/features.txt | 86 +++++++++++ doc/specs/vulkan/chapters/fragops.txt | 50 ++++++- doc/specs/vulkan/chapters/framebuffer.txt | 16 ++ doc/specs/vulkan/chapters/fundamentals.txt | 35 +++-- doc/specs/vulkan/chapters/fxvertex.txt | 8 + doc/specs/vulkan/chapters/initialization.txt | 8 + doc/specs/vulkan/chapters/introduction.txt | 4 +- doc/specs/vulkan/chapters/memory.txt | 40 +++++ doc/specs/vulkan/chapters/pipelines.txt | 40 +++++ doc/specs/vulkan/chapters/primsrast.txt | 34 ++++- doc/specs/vulkan/chapters/queries.txt | 32 ++++ doc/specs/vulkan/chapters/renderpass.txt | 32 ++++ doc/specs/vulkan/chapters/resources.txt | 62 +++++++- doc/specs/vulkan/chapters/samplers.txt | 12 +- doc/specs/vulkan/chapters/shaders.txt | 21 ++- doc/specs/vulkan/chapters/sparsemem.txt | 24 ++- doc/specs/vulkan/chapters/synchronization.txt | 64 ++++++++ doc/specs/vulkan/chapters/tessellation.txt | 8 + doc/specs/vulkan/chapters/textures.txt | 36 ++--- doc/specs/vulkan/chapters/vertexpostproc.txt | 16 ++ doc/specs/vulkan/genRef.py | 11 +- doc/specs/vulkan/style/extensions.txt | 13 +- doc/specs/vulkan/style/writing.txt | 2 + doc/specs/vulkan/styleguide.txt | 4 + src/spec/vk.xml | 11 +- src/vulkan/vulkan.h | 9 +- 52 files changed, 907 insertions(+), 217 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 578ae5c7..42bee21f 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -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 + <> 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 <> 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 <> 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. diff --git a/doc/specs/vulkan/Makefile b/doc/specs/vulkan/Makefile index 749b4d30..40d73894 100644 --- a/doc/specs/vulkan/Makefile +++ b/doc/specs/vulkan/Makefile @@ -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"`) diff --git a/doc/specs/vulkan/appendices/VK_AMD_gcn_shader.txt b/doc/specs/vulkan/appendices/VK_AMD_gcn_shader.txt index c601bf44..868ed814 100644 --- a/doc/specs/vulkan/appendices/VK_AMD_gcn_shader.txt +++ b/doc/specs/vulkan/appendices/VK_AMD_gcn_shader.txt @@ -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 diff --git a/doc/specs/vulkan/appendices/VK_AMD_gpu_shader_half_float.txt b/doc/specs/vulkan/appendices/VK_AMD_gpu_shader_half_float.txt index 8bf1a0ba..3f9e9959 100644 --- a/doc/specs/vulkan/appendices/VK_AMD_gpu_shader_half_float.txt +++ b/doc/specs/vulkan/appendices/VK_AMD_gpu_shader_half_float.txt @@ -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 diff --git a/doc/specs/vulkan/appendices/VK_AMD_shader_ballot.txt b/doc/specs/vulkan/appendices/VK_AMD_shader_ballot.txt index e9017008..aa79a604 100644 --- a/doc/specs/vulkan/appendices/VK_AMD_shader_ballot.txt +++ b/doc/specs/vulkan/appendices/VK_AMD_shader_ballot.txt @@ -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 diff --git a/doc/specs/vulkan/appendices/VK_AMD_shader_explicit_vertex_parameter.txt b/doc/specs/vulkan/appendices/VK_AMD_shader_explicit_vertex_parameter.txt index 5cc331f7..00e32749 100644 --- a/doc/specs/vulkan/appendices/VK_AMD_shader_explicit_vertex_parameter.txt +++ b/doc/specs/vulkan/appendices/VK_AMD_shader_explicit_vertex_parameter.txt @@ -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 diff --git a/doc/specs/vulkan/appendices/VK_AMD_shader_trinary_minmax.txt b/doc/specs/vulkan/appendices/VK_AMD_shader_trinary_minmax.txt index 47300d98..77050d1f 100644 --- a/doc/specs/vulkan/appendices/VK_AMD_shader_trinary_minmax.txt +++ b/doc/specs/vulkan/appendices/VK_AMD_shader_trinary_minmax.txt @@ -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 diff --git a/doc/specs/vulkan/appendices/VK_KHR_display.txt b/doc/specs/vulkan/appendices/VK_KHR_display.txt index 21032a96..46906c3b 100644 --- a/doc/specs/vulkan/appendices/VK_KHR_display.txt +++ b/doc/specs/vulkan/appendices/VK_KHR_display.txt @@ -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 diff --git a/doc/specs/vulkan/appendices/VK_KHR_external_memory_win32.txt b/doc/specs/vulkan/appendices/VK_KHR_external_memory_win32.txt index fdee0d47..b744945a 100644 --- a/doc/specs/vulkan/appendices/VK_KHR_external_memory_win32.txt +++ b/doc/specs/vulkan/appendices/VK_KHR_external_memory_win32.txt @@ -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 `<>`, 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 diff --git a/doc/specs/vulkan/appendices/boilerplate.txt b/doc/specs/vulkan/appendices/boilerplate.txt index c8d0f807..7149a457 100644 --- a/doc/specs/vulkan/appendices/boilerplate.txt +++ b/doc/specs/vulkan/appendices/boilerplate.txt @@ -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 -<>. -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 <>. -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 diff --git a/doc/specs/vulkan/appendices/invariance.txt b/doc/specs/vulkan/appendices/invariance.txt index 535fc13d..3dd12622 100644 --- a/doc/specs/vulkan/appendices/invariance.txt +++ b/doc/specs/vulkan/appendices/invariance.txt @@ -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 diff --git a/doc/specs/vulkan/chapters/VK_AMD_shader_info.txt b/doc/specs/vulkan/chapters/VK_AMD_shader_info.txt index ec1ccc98..0407001c 100644 --- a/doc/specs/vulkan/chapters/VK_AMD_shader_info.txt +++ b/doc/specs/vulkan/chapters/VK_AMD_shader_info.txt @@ -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. diff --git a/doc/specs/vulkan/chapters/VK_EXT_debug_report.txt b/doc/specs/vulkan/chapters/VK_EXT_debug_report.txt index d6ae67a0..c015155e 100644 --- a/doc/specs/vulkan/chapters/VK_EXT_debug_report.txt +++ b/doc/specs/vulkan/chapters/VK_EXT_debug_report.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/VK_EXT_display_surface_counter/surface_capabilities.txt b/doc/specs/vulkan/chapters/VK_EXT_display_surface_counter/surface_capabilities.txt index a9acc6b4..b50373f4 100644 --- a/doc/specs/vulkan/chapters/VK_EXT_display_surface_counter/surface_capabilities.txt +++ b/doc/specs/vulkan/chapters/VK_EXT_display_surface_counter/surface_capabilities.txt @@ -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. +-- + diff --git a/doc/specs/vulkan/chapters/VK_KHR_display/display.txt b/doc/specs/vulkan/chapters/VK_KHR_display/display.txt index 32ff609b..1511f5ea 100644 --- a/doc/specs/vulkan/chapters/VK_KHR_display/display.txt +++ b/doc/specs/vulkan/chapters/VK_KHR_display/display.txt @@ -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. +-- diff --git a/doc/specs/vulkan/chapters/VK_KHR_surface/wsi.txt b/doc/specs/vulkan/chapters/VK_KHR_surface/wsi.txt index 0efbe23a..9d8ce3bd 100644 --- a/doc/specs/vulkan/chapters/VK_KHR_surface/wsi.txt +++ b/doc/specs/vulkan/chapters/VK_KHR_surface/wsi.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/VK_KHR_swapchain/wsi.txt b/doc/specs/vulkan/chapters/VK_KHR_swapchain/wsi.txt index 6fb711ac..442db2b7 100644 --- a/doc/specs/vulkan/chapters/VK_KHR_swapchain/wsi.txt +++ b/doc/specs/vulkan/chapters/VK_KHR_swapchain/wsi.txt @@ -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'] diff --git a/doc/specs/vulkan/chapters/VK_NVX_device_generated_commands/indirectcommands.txt b/doc/specs/vulkan/chapters/VK_NVX_device_generated_commands/indirectcommands.txt index a3b04138..a206f463 100644 --- a/doc/specs/vulkan/chapters/VK_NVX_device_generated_commands/indirectcommands.txt +++ b/doc/specs/vulkan/chapters/VK_NVX_device_generated_commands/indirectcommands.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/VK_NVX_device_generated_commands/objecttable.txt b/doc/specs/vulkan/chapters/VK_NVX_device_generated_commands/objecttable.txt index 584709dd..3cbfcdfa 100644 --- a/doc/specs/vulkan/chapters/VK_NVX_device_generated_commands/objecttable.txt +++ b/doc/specs/vulkan/chapters/VK_NVX_device_generated_commands/objecttable.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/VK_NV_external_memory_capabilities/external_image_format.txt b/doc/specs/vulkan/chapters/VK_NV_external_memory_capabilities/external_image_format.txt index 91d668ee..0ecf2e8e 100644 --- a/doc/specs/vulkan/chapters/VK_NV_external_memory_capabilities/external_image_format.txt +++ b/doc/specs/vulkan/chapters/VK_NV_external_memory_capabilities/external_image_format.txt @@ -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. +-- diff --git a/doc/specs/vulkan/chapters/VK_NV_external_memory_win32/import_memory_win32.txt b/doc/specs/vulkan/chapters/VK_NV_external_memory_win32/import_memory_win32.txt index e24e4816..55090e8f 100644 --- a/doc/specs/vulkan/chapters/VK_NV_external_memory_win32/import_memory_win32.txt +++ b/doc/specs/vulkan/chapters/VK_NV_external_memory_win32/import_memory_win32.txt @@ -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. +-- + diff --git a/doc/specs/vulkan/chapters/cmdbuffers.txt b/doc/specs/vulkan/chapters/cmdbuffers.txt index c35ebb28..33768e1d 100644 --- a/doc/specs/vulkan/chapters/cmdbuffers.txt +++ b/doc/specs/vulkan/chapters/cmdbuffers.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/descriptorsets.txt b/doc/specs/vulkan/chapters/descriptorsets.txt index 394d6b46..ea55a632 100644 --- a/doc/specs/vulkan/chapters/descriptorsets.txt +++ b/doc/specs/vulkan/chapters/descriptorsets.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/devsandqueues.txt b/doc/specs/vulkan/chapters/devsandqueues.txt index fe38cc11..ea67767e 100644 --- a/doc/specs/vulkan/chapters/devsandqueues.txt +++ b/doc/specs/vulkan/chapters/devsandqueues.txt @@ -468,6 +468,14 @@ For further details see <>. -- +[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'] diff --git a/doc/specs/vulkan/chapters/drawing.txt b/doc/specs/vulkan/chapters/drawing.txt index cee4be8a..416d5b35 100644 --- a/doc/specs/vulkan/chapters/drawing.txt +++ b/doc/specs/vulkan/chapters/drawing.txt @@ -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 diff --git a/doc/specs/vulkan/chapters/extensions.txt b/doc/specs/vulkan/chapters/extensions.txt index e6d121c0..54b1b955 100644 --- a/doc/specs/vulkan/chapters/extensions.txt +++ b/doc/specs/vulkan/chapters/extensions.txt @@ -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 <> 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. diff --git a/doc/specs/vulkan/chapters/features.txt b/doc/specs/vulkan/chapters/features.txt index 89b42f05..7e7e3850 100644 --- a/doc/specs/vulkan/chapters/features.txt +++ b/doc/specs/vulkan/chapters/features.txt @@ -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[] diff --git a/doc/specs/vulkan/chapters/fragops.txt b/doc/specs/vulkan/chapters/fragops.txt index 7cbb8bbe..03d20c7d 100644 --- a/doc/specs/vulkan/chapters/fragops.txt +++ b/doc/specs/vulkan/chapters/fragops.txt @@ -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 <>, +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 <>). -The scissor rectangles only apply to drawing commands, not to other commands -like clears or copies. +The scissor rectangles test only applies to <>, +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 diff --git a/doc/specs/vulkan/chapters/framebuffer.txt b/doc/specs/vulkan/chapters/framebuffer.txt index c226d913..23a98869 100644 --- a/doc/specs/vulkan/chapters/framebuffer.txt +++ b/doc/specs/vulkan/chapters/framebuffer.txt @@ -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. +-- diff --git a/doc/specs/vulkan/chapters/fundamentals.txt b/doc/specs/vulkan/chapters/fundamentals.txt index a6e3fed2..24c4682f 100644 --- a/doc/specs/vulkan/chapters/fundamentals.txt +++ b/doc/specs/vulkan/chapters/fundamentals.txt @@ -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 <> 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 diff --git a/doc/specs/vulkan/chapters/fxvertex.txt b/doc/specs/vulkan/chapters/fxvertex.txt index 9dd7b95f..6117b3ef 100644 --- a/doc/specs/vulkan/chapters/fxvertex.txt +++ b/doc/specs/vulkan/chapters/fxvertex.txt @@ -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. diff --git a/doc/specs/vulkan/chapters/initialization.txt b/doc/specs/vulkan/chapters/initialization.txt index a27eb81f..459782ef 100644 --- a/doc/specs/vulkan/chapters/initialization.txt +++ b/doc/specs/vulkan/chapters/initialization.txt @@ -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[] diff --git a/doc/specs/vulkan/chapters/introduction.txt b/doc/specs/vulkan/chapters/introduction.txt index fd766ca3..6d1ad2c8 100644 --- a/doc/specs/vulkan/chapters/introduction.txt +++ b/doc/specs/vulkan/chapters/introduction.txt @@ -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] diff --git a/doc/specs/vulkan/chapters/memory.txt b/doc/specs/vulkan/chapters/memory.txt index 4278c357..48c75d1a 100644 --- a/doc/specs/vulkan/chapters/memory.txt +++ b/doc/specs/vulkan/chapters/memory.txt @@ -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[] diff --git a/doc/specs/vulkan/chapters/pipelines.txt b/doc/specs/vulkan/chapters/pipelines.txt index e0fbeaec..4ea06678 100644 --- a/doc/specs/vulkan/chapters/pipelines.txt +++ b/doc/specs/vulkan/chapters/pipelines.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/primsrast.txt b/doc/specs/vulkan/chapters/primsrast.txt index 7659b130..5eb599f0 100644 --- a/doc/specs/vulkan/chapters/primsrast.txt +++ b/doc/specs/vulkan/chapters/primsrast.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/queries.txt b/doc/specs/vulkan/chapters/queries.txt index 12be85b6..74c568e7 100644 --- a/doc/specs/vulkan/chapters/queries.txt +++ b/doc/specs/vulkan/chapters/queries.txt @@ -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 diff --git a/doc/specs/vulkan/chapters/renderpass.txt b/doc/specs/vulkan/chapters/renderpass.txt index a1931a4b..5921bad8 100644 --- a/doc/specs/vulkan/chapters/renderpass.txt +++ b/doc/specs/vulkan/chapters/renderpass.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/resources.txt b/doc/specs/vulkan/chapters/resources.txt index 48f78b5e..c4e18172 100644 --- a/doc/specs/vulkan/chapters/resources.txt +++ b/doc/specs/vulkan/chapters/resources.txt @@ -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'] -- diff --git a/doc/specs/vulkan/chapters/samplers.txt b/doc/specs/vulkan/chapters/samplers.txt index f3928d1c..662707cc 100644 --- a/doc/specs/vulkan/chapters/samplers.txt +++ b/doc/specs/vulkan/chapters/samplers.txt @@ -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'] diff --git a/doc/specs/vulkan/chapters/shaders.txt b/doc/specs/vulkan/chapters/shaders.txt index bab33f70..633aa746 100644 --- a/doc/specs/vulkan/chapters/shaders.txt +++ b/doc/specs/vulkan/chapters/shaders.txt @@ -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 <>). -================== - +==== [[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'] -- diff --git a/doc/specs/vulkan/chapters/sparsemem.txt b/doc/specs/vulkan/chapters/sparsemem.txt index 38e9bc8c..9c6dee04 100644 --- a/doc/specs/vulkan/chapters/sparsemem.txt +++ b/doc/specs/vulkan/chapters/sparsemem.txt @@ -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 <> 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] diff --git a/doc/specs/vulkan/chapters/synchronization.txt b/doc/specs/vulkan/chapters/synchronization.txt index 757ea4fc..84f6a944 100644 --- a/doc/specs/vulkan/chapters/synchronization.txt +++ b/doc/specs/vulkan/chapters/synchronization.txt @@ -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 <> 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 diff --git a/doc/specs/vulkan/chapters/tessellation.txt b/doc/specs/vulkan/chapters/tessellation.txt index 85afebf6..ea91fd08 100644 --- a/doc/specs/vulkan/chapters/tessellation.txt +++ b/doc/specs/vulkan/chapters/tessellation.txt @@ -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'] diff --git a/doc/specs/vulkan/chapters/textures.txt b/doc/specs/vulkan/chapters/textures.txt index 29065fdf..55b36803 100644 --- a/doc/specs/vulkan/chapters/textures.txt +++ b/doc/specs/vulkan/chapters/textures.txt @@ -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 <> `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 | δ~i~ | etext:COSITED_EVEN | 0 | etext:MIDPOINT | 0.5 -|========== +|==== + [width="30%",options="header",cols="5,1"] -|========== +|==== | pname:yChromaOffset | δ~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 <>, 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[] diff --git a/doc/specs/vulkan/chapters/vertexpostproc.txt b/doc/specs/vulkan/chapters/vertexpostproc.txt index 542db8e5..8804101d 100644 --- a/doc/specs/vulkan/chapters/vertexpostproc.txt +++ b/doc/specs/vulkan/chapters/vertexpostproc.txt @@ -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 diff --git a/doc/specs/vulkan/genRef.py b/doc/specs/vulkan/genRef.py index ac899956..72ea14d2 100755 --- a/doc/specs/vulkan/genRef.py +++ b/doc/specs/vulkan/genRef.py @@ -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' ], diff --git a/doc/specs/vulkan/style/extensions.txt b/doc/specs/vulkan/style/extensions.txt index 20e64e74..92a3ced2 100644 --- a/doc/specs/vulkan/style/extensions.txt +++ b/doc/specs/vulkan/style/extensions.txt @@ -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 + <>, explicit incompatibilities may + exist, and must be documented. [[extensions-naming-conventions]] == Extension and Layer Naming Conventions diff --git a/doc/specs/vulkan/style/writing.txt b/doc/specs/vulkan/style/writing.txt index ce559c70..c7e23338 100644 --- a/doc/specs/vulkan/style/writing.txt +++ b/doc/specs/vulkan/style/writing.txt @@ -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 + diff --git a/doc/specs/vulkan/styleguide.txt b/doc/specs/vulkan/styleguide.txt index e241a1aa..97f11d0e 100644 --- a/doc/specs/vulkan/styleguide.txt +++ b/doc/specs/vulkan/styleguide.txt @@ -157,6 +157,10 @@ include::style/vuid.txt[] = Revision History +* 2018-01-10 - Move details of mandated extension compatibility from the + <> 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 <> section (related to public diff --git a/src/spec/vk.xml b/src/spec/vk.xml index e219c36b..13fc2628 100644 --- a/src/spec/vk.xml +++ b/src/spec/vk.xml @@ -107,7 +107,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. // Vulkan 1.0 version number #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 67 +#define VK_HEADER_VERSION 68 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; @@ -3531,7 +3531,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + @@ -7389,6 +7389,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. + @@ -7623,5 +7624,11 @@ private version is maintained in the 1.0 branch of the member gitlab server. + + + + + + diff --git a/src/vulkan/vulkan.h b/src/vulkan/vulkan.h index dbed03a6..d3e2e246 100644 --- a/src/vulkan/vulkan.h +++ b/src/vulkan/vulkan.h @@ -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 {