Hello community, here is the log from the commit of package vulkan-doc for openSUSE:Factory checked in at 2020-02-19 12:41:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vulkan-doc (Old) and /work/SRC/openSUSE:Factory/.vulkan-doc.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vulkan-doc" Wed Feb 19 12:41:48 2020 rev:8 rq:776241 version:1.2.133 Changes: -------- --- /work/SRC/openSUSE:Factory/vulkan-doc/vulkan-doc.changes 2020-02-04 19:55:24.129393300 +0100 +++ /work/SRC/openSUSE:Factory/.vulkan-doc.new.26092/vulkan-doc.changes 2020-02-19 12:41:51.795777435 +0100 @@ -1,0 +2,51 @@ +Tue Feb 18 16:05:46 UTC 2020 - Antonio Larrosa <[email protected]> + +- Update to release 1.2.133: + * Clarify language describing the <<commandbuffers-lifecycle, command + buffer lifecycle>> + * Add anchor handles to chapters and VUID statements in the HTML outputs. + * Update declaration of flink:vkCmdDrawIndexedIndirectCountAMD to alias + the core function rather than the KHR extension function. + * Remove redundant NOTE discussing + ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT after the description + of slink:VkCommandBufferInheritanceInfo.txt. + * Reserved vendor ID for Codeplay. + * Restrict flag bits to bit positions 0..30. Add language to the + <<fundamentals-validusage-flags, Valid Usage for Flags>> section + expressing the restriction; to the registry documentation where the + `bitpos` attribute is defined; and finally, add a test to the generator + scripts that warns of bits 31 and higher being used. + * Clarify dynamic indexing of sampler objects in the + <<interfaces-resources-descset, Descriptor Set Interface>> section, to + be controlled by the same feature as sampled images. + * Make the effect of query reset commands requiring multiple passes to + complete explicit, by disallowing resets of the same query from the same + primary command buffer in the description of flink:vkCmdResetQueryPool + and the valid usage statements for ftext:vkCmdBeginQuery* . + * Update interaction between elink:VkFormatFeatureFlagBits affecting + slink:VkSamplerYcbcrConversionCreateInfo::pname:forceExplicitReconstruction. + * Generate implicit pname:sType-unique valid usage statements from + `validitygenerator.py` even for pname:pNext chains with only a single + valid structure type, to enable validation layers work. + * Clean up wording of some flink:vkBindImageMemory valid usage statements . + * Mark the `VK_EXT_shader_subgroup_vote` and + `VK_EXT_shader_subgroup_ballot` as deprecated in `vk.xml` . + * Tighten slink:VkSamplerYcbcrConversionCreateInfo::pname:chromaFilter + valid usage restriction to be ename:VK_FILTER_NEAREST instead of + ename:VK_FILTER_LINAER, now that other filters exist . + * Add valid usage statements to slink:VkCommandPoolCreateInfo and + slink:VkDeviceQueueCreateInfo requiring that the corresponding + ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT and + ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT not be set if the protected + memory feature is not enabled. Previously this restriction was described + for the elink:VkCommandPoolCreateFlagBits and + elink:VkDeviceQueueCreateFlagBits types containing those flags, but not + in valid usage statements. + * Fix conditional markup in the <<shaders-scope-device>> and + <<shaders-scope-queue-family>> sections to apply to Vulkan 1.2, as well + as `VK_KHR_vulkan_memory_model`. + * Add performance queries to the list in the introduction of the + <<supported query types, queries>> chapter. + * New Extension: `<<VK_KHR_shader_non_semantic_info>>` + +------------------------------------------------------------------- Old: ---- v1.2.132.tar.gz New: ---- v1.2.133.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vulkan-doc.spec ++++++ --- /var/tmp/diff_new_pack.wl5nvS/_old 2020-02-19 12:41:52.911779584 +0100 +++ /var/tmp/diff_new_pack.wl5nvS/_new 2020-02-19 12:41:52.915779591 +0100 @@ -17,7 +17,7 @@ Name: vulkan-doc -Version: 1.2.132 +Version: 1.2.133 Release: 0 Summary: Formal documentation of the Vulkan API License: CC-BY-SA-4.0 AND Apache-2.0 ++++++ v1.2.132.tar.gz -> v1.2.133.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/ChangeLog.txt new/Vulkan-Docs-1.2.133/ChangeLog.txt --- old/Vulkan-Docs-1.2.132/ChangeLog.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/ChangeLog.txt 2020-02-16 02:32:38.000000000 +0100 @@ -8,6 +8,78 @@ ----------------------------------------------------- +Change log for February 15, 2020 Vulkan 1.2.133 spec update: + + * Update release number to 133 for this update. + +Github Issues: + + * Clarify language describing the <<commandbuffers-lifecycle, command + buffer lifecycle>> (public pull request 1152). + * Add anchor handles to chapters and VUID statements in the HTML outputs + (public pull request 1157). + * Update declaration of flink:vkCmdDrawIndexedIndirectCountAMD to alias + the core function rather than the KHR extension function (public pull + request 1165). + * Remove redundant NOTE discussing + ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT after the description + of slink:VkCommandBufferInheritanceInfo.txt (public pull request 1167). + * Reserved vendor ID for Codeplay (public pull request #1167). + +Internal Issues: + + * Restrict flag bits to bit positions 0..30. Add language to the + <<fundamentals-validusage-flags, Valid Usage for Flags>> section + expressing the restriction; to the registry documentation where the + `bitpos` attribute is defined; and finally, add a test to the generator + scripts that warns of bits 31 and higher being used (internal issue + 1945). + * Clarify dynamic indexing of sampler objects in the + <<interfaces-resources-descset, Descriptor Set Interface>> section, to + be controlled by the same feature as sampled images (internal issue + 1951). + * Make the effect of query reset commands requiring multiple passes to + complete explicit, by disallowing resets of the same query from the same + primary command buffer in the description of flink:vkCmdResetQueryPool + and the valid usage statements for ftext:vkCmdBeginQuery* (internal + issue 1965). + * Update interaction between elink:VkFormatFeatureFlagBits affecting + slink:VkSamplerYcbcrConversionCreateInfo::pname:forceExplicitReconstruction + (internal merge request 3533). + * Generate implicit pname:sType-unique valid usage statements from + `validitygenerator.py` even for pname:pNext chains with only a single + valid structure type, to enable validation layers work (internal merge + request 3534). + * Clean up wording of some flink:vkBindImageMemory valid usage statements + (internal merge request 3547). + * Mark the `VK_EXT_shader_subgroup_vote` and + `VK_EXT_shader_subgroup_ballot` as deprecated in `vk.xml` (internal + merge request 3558). + * Tighten slink:VkSamplerYcbcrConversionCreateInfo::pname:chromaFilter + valid usage restriction to be ename:VK_FILTER_NEAREST instead of + ename:VK_FILTER_LINAER, now that other filters exist (internal merge + request 3561). + * Add valid usage statements to slink:VkCommandPoolCreateInfo and + slink:VkDeviceQueueCreateInfo requiring that the corresponding + ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT and + ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT not be set if the protected + memory feature is not enabled. Previously this restriction was described + for the elink:VkCommandPoolCreateFlagBits and + elink:VkDeviceQueueCreateFlagBits types containing those flags, but not + in valid usage statements (internal merge request 3563). + * Fix conditional markup in the <<shaders-scope-device>> and + <<shaders-scope-queue-family>> sections to apply to Vulkan 1.2, as well + as `VK_KHR_vulkan_memory_model` (internal merge request 3570). + * Add performance queries to the list in the introduction of the + <<supported query types, queries>> chapter (internal merge request + 3577). + +New Extensions + + * `<<VK_KHR_shader_non_semantic_info>>` + +----------------------------------------------------- + Change log for January 20, 2020 Vulkan 1.2.132 spec update: * Update release number to 132 for this update. @@ -32,7 +104,8 @@ * Add slink:VkRenderPassBeginInfo valid usage statements for pname:renderArea (public pull request 1159). * Add missing valid usage statements for flink:vkCmdBeginRenderPass when - `VK_KHR_separate_depth_stencil_layouts` is enabled (public issue 1470). + `VK_KHR_separate_depth_stencil_layouts` is enabled (public + KhronosGroup/Vulkan-ValidationLayers issue 1470). Internal Issues: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/Makefile new/Vulkan-Docs-1.2.133/Makefile --- old/Vulkan-Docs-1.2.132/Makefile 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/Makefile 2020-02-16 02:32:38.000000000 +0100 @@ -1,4 +1,4 @@ -# Copyright (c) 2014-2019 The Khronos Group Inc. +# Copyright (c) 2014-2020 The Khronos Group Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -119,7 +119,7 @@ # ADOCOPTS options for asciidoc->HTML5 output NOTEOPTS = -a editing-notes -a implementation-guide -PATCHVERSION = 132 +PATCHVERSION = 133 ifneq (,$(findstring VK_VERSION_1_2,$(VERSIONS))) SPECREVISION = 1.2.$(PATCHVERSION) else @@ -178,7 +178,8 @@ # 'stylesdir' containing our custom CSS. KATEXDIR = katex ADOCHTMLOPTS = $(ADOCHTMLEXTS) -a katexpath=$(KATEXDIR) \ - -a stylesheet=khronos.css -a stylesdir=$(CURDIR)/config + -a stylesheet=khronos.css -a stylesdir=$(CURDIR)/config \ + -a sectanchors ADOCPDFEXTS = -r asciidoctor-pdf -r asciidoctor-mathematical -r $(CURDIR)/config/asciidoctor-mathematical-ext.rb ADOCPDFOPTS = $(ADOCPDFEXTS) -a mathematical-format=svg \ @@ -215,6 +216,9 @@ # All non-format-specific dependencies COMMONDOCS = $(SPECFILES) $(GENDEPENDS) +# Script to add href to anchors +GENANCHORLINKS = $(SCRIPTS)/genanchorlinks.py + # Install katex in $(OUTDIR)/katex for reference by all HTML targets # README.md is a proxy for all the katex files that need to be installed katexinst: KATEXDIR = katex @@ -253,6 +257,7 @@ $(HTMLDIR)/vkspec.html: KATEXDIR = ../katex $(HTMLDIR)/vkspec.html: $(SPECSRC) $(COMMONDOCS) katexinst $(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ $(SPECSRC) + $(QUIET)$(PYTHON) $(GENANCHORLINKS) $@ $@ diff_html: $(HTMLDIR)/diff.html $(SPECSRC) $(COMMONDOCS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/appendices/VK_EXT_shader_subgroup_ballot.txt new/Vulkan-Docs-1.2.133/appendices/VK_EXT_shader_subgroup_ballot.txt --- old/Vulkan-Docs-1.2.132/appendices/VK_EXT_shader_subgroup_ballot.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/appendices/VK_EXT_shader_subgroup_ballot.txt 2020-02-16 02:32:38.000000000 +0100 @@ -98,6 +98,15 @@ * <<spirvenv-capabilities-table-subgroupballot,SubgroupBallotKHR>> +=== Deprecated by Vulkan 1.2 + +Most of the functionality in this extension is superseded by the core Vulkan +1.1 <<VkPhysicalDeviceSubgroupProperties, subgroup operations>>. +However, Vulkan 1.1 required the code:OpGroupNonUniformBroadcast "Id" to be +constant. +This restriction was removed in Vulkan 1.2 with the addition of the +<<features-subgroupBroadcastDynamicId,subgroupBroadcastDynamicId>> feature. + === Issues None. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/appendices/VK_EXT_shader_subgroup_vote.txt new/Vulkan-Docs-1.2.133/appendices/VK_EXT_shader_subgroup_vote.txt --- old/Vulkan-Docs-1.2.132/appendices/VK_EXT_shader_subgroup_vote.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/appendices/VK_EXT_shader_subgroup_vote.txt 2020-02-16 02:32:38.000000000 +0100 @@ -122,6 +122,11 @@ * <<spirvenv-capabilities-table-subgroupvote,SubgroupVoteKHR>> +=== Deprecated by Vulkan 1.1 + +All functionality in this extension is superseded by the core Vulkan 1.1 +<<VkPhysicalDeviceSubgroupProperties, subgroup operations>>. + === Issues None. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/appendices/VK_KHR_shader_non_semantic_info.txt new/Vulkan-Docs-1.2.133/appendices/VK_KHR_shader_non_semantic_info.txt --- old/Vulkan-Docs-1.2.132/appendices/VK_KHR_shader_non_semantic_info.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/appendices/VK_KHR_shader_non_semantic_info.txt 2020-02-16 02:32:38.000000000 +0100 @@ -0,0 +1,36 @@ +include::{generated}/meta/VK_KHR_shader_non_semantic_info.txt[] + +*Last Modified Date*:: + 2019-10-16 +*IP Status*:: + No known IP claims. +*Interactions and External Dependencies*:: + - This extension requires the + {spirv}/KHR/SPV_KHR_non_semantic_info.asciidoc[`SPV_KHR_non_semantic_info`] + SPIR-V extension. +*Contributors*:: + - Baldur Karlsson, Valve + +This extension allows the use of the `SPV_KHR_non_semantic_info` extension +in SPIR-V shader modules. + +=== New Object Types + +None. + +=== New Enum Constants + +None. + +=== New SPIR-V Capabilities + +None. + +=== New Structures + +None. + +=== Version History + + * Revision 1, 2019-10-16 (Baldur Karlsson) + - Initial revision diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/appendices/spirvenv.txt new/Vulkan-Docs-1.2.133/appendices/spirvenv.txt --- old/Vulkan-Docs-1.2.132/appendices/spirvenv.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/appendices/spirvenv.txt 2020-02-16 02:32:38.000000000 +0100 @@ -561,6 +561,11 @@ uses the `SPV_EXT_demote_to_helper_invocation` SPIR-V extension. endif::VK_EXT_shader_demote_to_helper_invocation[] +ifdef::VK_KHR_shader_non_semantic_info[] +The application can: pass a SPIR-V module to flink:vkCreateShaderModule that +uses the `SPV_KHR_non_semantic_info` SPIR-V extension. +endif::VK_KHR_shader_non_semantic_info[] + The application must: not pass a SPIR-V module containing any of the following to flink:vkCreateShaderModule: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/cmdbuffers.txt new/Vulkan-Docs-1.2.133/chapters/cmdbuffers.txt --- old/Vulkan-Docs-1.2.132/chapters/cmdbuffers.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/cmdbuffers.txt 2020-02-16 02:32:38.000000000 +0100 @@ -63,8 +63,8 @@ Initial:: When a command buffer is <<vkAllocateCommandBuffers, allocated>>, it is in the _initial state_. - Some commands are able to _reset_ a command buffer, or a set of command - buffers, back to this state from any of the executable, recording or + Some commands are able to _reset_ a command buffer (or a set of command + buffers) back to this state from any of the executable, recording or invalid state. Command buffers in the initial state can: only be moved to the recording state, or freed. @@ -86,9 +86,10 @@ Whilst in the pending state, applications must: not attempt to modify the command buffer in any way - as the device may: be processing the commands recorded to it. - Once execution of a command buffer completes, the command buffer reverts - back to either the _executable state_, or the _invalid state_ if it was - recorded with ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT. + Once execution of a command buffer completes, the command buffer either + reverts back to the _executable state_, or if it was recorded with + ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, it moves to the + _invalid state_. A <<synchronization, synchronization>> command should: be used to detect when this occurs. Invalid:: @@ -106,25 +107,33 @@ usage constraints for that command. Resetting a command buffer is an operation that discards any previously -recorded commands and puts a command buffer in the initial state. +recorded commands and puts a command buffer in the _initial state_. Resetting occurs as a result of flink:vkResetCommandBuffer or flink:vkResetCommandPool, or as part of flink:vkBeginCommandBuffer (which -additionally puts the command buffer in the recording state). +additionally puts the command buffer in the _recording state_). <<commandbuffers-secondary, Secondary command buffers>> can: be recorded to a primary command buffer via flink:vkCmdExecuteCommands. This partially ties the lifecycle of the two command buffers together - if the primary is submitted to a queue, both the primary and any secondaries -recorded to it move to the pending state. -Once execution of the primary completes, so does any secondary recorded -within it, and once all executions of each command buffer complete, they -move to the executable state. -If a secondary moves to any other state whilst it is recorded to another -command buffer, the primary moves to the invalid state. -A primary moving to any other state does not affect the state of the -secondary. -Resetting or freeing a primary command buffer removes the linkage to any -secondary command buffers that were recorded to it. +recorded to it move to the _pending state_. +Once execution of the primary completes, so it does for any secondary +recorded within it. +After all executions of each command buffer complete, they each move to +their appropriate completion state (either to the _execution state_ or the +_invalid state_, as specified above). + +If a secondary moves to the _invalid state_ or the _initial state_, then all +primary buffers it is recorded in move to the _invalid state_. +A primary moving to any other state does not affect the state of a secondary +recorded in it. + +[NOTE] +.Note +==== +Resetting or freeing a primary command buffer removes the lifecycle linkage +to all secondary command buffers that were recorded into it. +==== [[commandbuffers-pools]] @@ -189,6 +198,16 @@ All command buffers allocated from this command pool must: be submitted on queues from the same queue family. +.Valid Usage +**** +ifdef::VK_VERSION_1_1[] + * [[VUID-VkCommandPoolCreateInfo-flags-02860]] + If the protected memory feature is not enabled, the + ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of pname:flags must: not + be set. +endif::VK_VERSION_1_1[] +**** + include::{generated}/validity/structs/VkCommandPoolCreateInfo.txt[] -- @@ -215,9 +234,6 @@ ifdef::VK_VERSION_1_1[] * ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT specifies that command buffers allocated from the pool are protected command buffers. - If the protected memory feature is not enabled, the - ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of pname:flags must: not - be set. endif::VK_VERSION_1_1[] -- @@ -769,18 +785,6 @@ [NOTE] .Note ==== -If ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT was not set when -creating a command buffer, that command buffer must: not be submitted to a -queue whilst it is already in the <<commandbuffers-lifecycle, pending -state>>. -If ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT is not set on a -secondary command buffer, that command buffer must: not be used more than -once in a given primary command buffer. -==== - -[NOTE] -.Note -==== On some implementations, not using the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT bit enables command buffers to be patched in-place if needed, rather than creating a copy of the @@ -960,8 +964,8 @@ from the <<commandbuffers-lifecycle, pending state>>, back to the <<commandbuffers-lifecycle, executable state>>. If a command buffer was recorded with the -ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT flag, it instead moves -back to the <<commandbuffers-lifecycle, invalid state>>. +ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT flag, it instead moves to +the <<commandbuffers-lifecycle, invalid state>>. If fname:vkQueueSubmit fails, it may: return ename:VK_ERROR_OUT_OF_HOST_MEMORY or ename:VK_ERROR_OUT_OF_DEVICE_MEMORY. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/commonvalidity/performance_query_begin_common.txt new/Vulkan-Docs-1.2.133/chapters/commonvalidity/performance_query_begin_common.txt --- old/Vulkan-Docs-1.2.132/chapters/commonvalidity/performance_query_begin_common.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/commonvalidity/performance_query_begin_common.txt 2020-02-16 02:32:38.000000000 +0100 @@ -1,3 +1,5 @@ +// Common Valid Usage +// Common to all drawing commands ifdef::VK_KHR_performance_query[] * [[VUID-{refpage}-queryPool-03223]] If pname:queryPool was created with a pname:queryType of @@ -25,4 +27,9 @@ buffer as pname:commandBuffer, the <<features-features-performanceCounterMultipleQueryPools,pname:performanceCounterMultipleQueryPools>> feature must: be enabled + * [[VUID-{refpage}-None-02863]] + This command must: not be recorded in a command buffer that, either + directly or through secondary command buffers, also contains a + fname:vkCmdResetQueryPool command affecting the same query. endif::VK_KHR_performance_query[] +// Common Valid Usage diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/devsandqueues.txt new/Vulkan-Docs-1.2.133/chapters/devsandqueues.txt --- old/Vulkan-Docs-1.2.132/chapters/devsandqueues.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/devsandqueues.txt 2020-02-16 02:32:38.000000000 +0100 @@ -1585,6 +1585,12 @@ * [[VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383]] Each element of pname:pQueuePriorities must: be between `0.0` and `1.0` inclusive +ifdef::VK_VERSION_1_1[] + * [[VUID-VkDeviceQueueCreateInfo-flags-02861]] + If the <<features-protectedMemory, protected memory>> feature is not + enabled, the ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of + pname:flags must: not be set. +endif::VK_VERSION_1_1[] **** include::{generated}/validity/structs/VkDeviceQueueCreateInfo.txt[] @@ -1602,9 +1608,6 @@ * ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT specifies that the device queue is a protected-capable queue. - If the protected memory feature is not enabled, the - ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of pname:flags must: not - be set. -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/formats.txt new/Vulkan-Docs-1.2.133/chapters/formats.txt --- old/Vulkan-Docs-1.2.132/chapters/formats.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/formats.txt 2020-02-16 02:32:38.000000000 +0100 @@ -2377,6 +2377,10 @@ specifies that reconstruction can: be forcibly made explicit by setting slink:VkSamplerYcbcrConversionCreateInfo::pname:forceExplicitReconstruction to ename:VK_TRUE. + If the format being queried supports + ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT + it must: also support + ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT. * ename:VK_FORMAT_FEATURE_DISJOINT_BIT specifies that a multi-planar image can: have the ename:VK_IMAGE_CREATE_DISJOINT_BIT set during image creation. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/fundamentals.txt new/Vulkan-Docs-1.2.133/chapters/fundamentals.txt --- old/Vulkan-Docs-1.2.132/chapters/fundamentals.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/fundamentals.txt 2020-02-16 02:32:38.000000000 +0100 @@ -887,8 +887,6 @@ whose name matches the corresponding etext:Vk*FlagBits that are valid for that type, is used. --- - Any etext:Vk*Flags member or parameter used in the API as an input must: be a valid combination of bit flags. A valid combination is either zero or the bitwise OR of valid bit flags. @@ -908,6 +906,20 @@ undefined: in its corresponding etext:Vk*FlagBits type. An application cannot: rely on the state of these unspecified bits. +Only the low-order 31 bits (bit positions zero through 30) are available for +use as flag bits. + +[NOTE] +.Note +==== +This restriction is due to poorly defined behavior by C compilers given a C +enumerant value of `0x80000000`. +In some cases adding this enumerant value may increase the size of the +underlying etext:Vk*FlagBits type, breaking the ABI. +==== +-- + + [[fundamentals-validusage-sType]] ==== Valid Usage for Structure Types diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/interfaces.txt new/Vulkan-Docs-1.2.133/chapters/interfaces.txt --- old/Vulkan-Docs-1.2.132/chapters/interfaces.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/interfaces.txt 2020-02-16 02:32:38.000000000 +0100 @@ -620,7 +620,8 @@ ** Non-uniform: pname:shaderInputAttachmentArrayNonUniformIndexing and code:InputAttachmentArrayNonUniformIndexing endif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] - * Sampled images (except uniform texel buffers): + * Sampled images (except uniform texel buffers), samplers and combined + image samplers: ** Dynamically uniform: pname:shaderSampledImageArrayDynamicIndexing and code:SampledImageArrayDynamicIndexing ifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] @@ -2805,7 +2806,7 @@ make that variable contain the implementation-dependent <<limits-subgroup-size,number of invocations in a subgroup>>. This value must: be a power-of-two integer. - ++ ifdef::VK_EXT_subgroup_size_control[] If the pipeline was created with the ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT @@ -2816,12 +2817,12 @@ subgroup scope. The value may: vary across a single draw or dispatch call, and for fragment shaders may: vary across a single primitive. - ++ If the pipeline was created with a chained slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure, the code:SubgroupSize decorated variable will match <<pipelines-required-subgroup-size, pname:requiredSubgroupSize>>. - ++ If the pipeline was not created with the ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flag set and no slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT @@ -2832,7 +2833,7 @@ endif::VK_EXT_subgroup_size_control[] variable decorated with code:SubgroupSize will match <<limits-subgroup-size, pname:subgroupSize>>. - ++ The maximum number of invocations that an implementation can support per subgroup is 128. + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/queries.txt new/Vulkan-Docs-1.2.133/chapters/queries.txt --- old/Vulkan-Docs-1.2.132/chapters/queries.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/queries.txt 2020-02-16 02:32:38.000000000 +0100 @@ -17,6 +17,10 @@ The supported query types are <<queries-occlusion,Occlusion Queries>>, <<queries-pipestats,Pipeline Statistics Queries>>, and <<queries-timestamps, Timestamp Queries>>. +ifdef::VK_KHR_performance_query[] +<<queries-performance, Performance Queries>> are also supported if the +associated extension is available. +endif::VK_KHR_performance_query[] ifdef::VK_INTEL_performance_query[] <<queries-performance-intel>> are also supported if the associated extension is available. @@ -248,6 +252,27 @@ [eq]#[pname:firstQuery, pname:firstQuery {plus} pname:queryCount - 1]# to unavailable. +ifdef::VK_KHR_performance_query[] +If the pname:queryType used to create pname:queryPool was +ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command sets the status of +query indices [eq]#[pname:firstQuery, pname:firstQuery {plus} +pname:queryCount - 1]# to unavailable for each pass of pname:queryPool, as +indicated by a call to +flink:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR. + +[NOTE] +.Note +==== +Because fname:vkCmdResetQueryPool resets all the passes of the indicated +queries, applications must not record a fname:vkCmdResetQueryPool command +for a pname:queryPool created with ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR +in a command buffer that needs to be submitted multiple times as indicated +by a call to flink:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR. +Otherwise applications will never be able to complete the recorded queries. +==== +endif::VK_KHR_performance_query[] + + .Valid Usage **** * [[VUID-vkCmdResetQueryPool-firstQuery-00796]] @@ -258,6 +283,11 @@ equal to the number of queries in pname:queryPool * [[VUID-vkCmdResetQueryPool-None-02841]] All queries used by the command must: not be active + * [[VUID-vkCmdResetQueryPool-firstQuery-02862]] + This command must: not be recorded in a command buffer that, either + directly or through secondary command buffers, also contains, begin + commands for a query from the set of queries [eq]#[pname:firstQuery, + pname:firstQuery {plus} pname:queryCount - 1]# **** include::{generated}/validity/protos/vkCmdResetQueryPool.txt[] @@ -289,6 +319,12 @@ This command sets the status of query indices [eq]#[pname:firstQuery, pname:firstQuery {plus} pname:queryCount - 1]# to unavailable. +ifdef::VK_KHR_performance_query[] +If pname:queryPool is ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR this command +sets the status of query indices [eq]#[pname:firstQuery, pname:firstQuery +{plus} pname:queryCount - 1]# to unavailable for each pass. +endif::VK_KHR_performance_query[] + .Valid Usage **** * [[VUID-vkResetQueryPool-None-02665]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/resources.txt new/Vulkan-Docs-1.2.133/chapters/resources.txt --- old/Vulkan-Docs-1.2.132/chapters/resources.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/resources.txt 2020-02-16 02:32:38.000000000 +0100 @@ -5031,10 +5031,10 @@ member of the sname:VkMemoryRequirements structure returned from a call to fname:vkGetImageMemoryRequirements with pname:image * [[VUID-vkBindImageMemory-size-01049]] - The pname:size member of the sname:VkMemoryRequirements structure - returned from a call to fname:vkGetImageMemoryRequirements with - pname:image must: be less than or equal to the size of pname:memory - minus pname:memoryOffset + The difference of the size of pname:memory and pname:memoryOffset must: + be greater than or equal to the pname:size member of the + slink:VkMemoryRequirements structure returned from a call to + flink:vkGetImageMemoryRequirements with the same pname:image ifdef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[] * [[VUID-vkBindImageMemory-image-01445]] If pname:image requires a dedicated allocation (as reported by @@ -5244,26 +5244,27 @@ structure, pname:memory must: have been allocated using one of the memory types allowed in the pname:memoryTypeBits member of the slink:VkMemoryRequirements structure returned from a call to - flink:vkGetImageMemoryRequirements2 with pname:image and the correct - pname:planeAspect for this plane in the - slink:VkImagePlaneMemoryRequirementsInfo structure included in the + flink:vkGetImageMemoryRequirements2 with pname:image and where + slink:VkBindImagePlaneMemoryInfo::pname:planeAspect corresponds to the + slink:VkImagePlaneMemoryRequirementsInfo::pname:planeAspect in the slink:VkImageMemoryRequirementsInfo2 structure's pname:pNext chain * [[VUID-VkBindImageMemoryInfo-pNext-01620]] If the pname:pNext chain includes a slink:VkBindImagePlaneMemoryInfo structure, pname:memoryOffset must: be an integer multiple of the pname:alignment member of the slink:VkMemoryRequirements structure returned from a call to flink:vkGetImageMemoryRequirements2 with - pname:image and the correct pname:planeAspect for this plane in the - slink:VkImagePlaneMemoryRequirementsInfo structure included in the + pname:image and where + slink:VkBindImagePlaneMemoryInfo::pname:planeAspect corresponds to the + slink:VkImagePlaneMemoryRequirementsInfo::pname:planeAspect in the slink:VkImageMemoryRequirementsInfo2 structure's pname:pNext chain * [[VUID-VkBindImageMemoryInfo-pNext-01621]] If the pname:pNext chain includes a slink:VkBindImagePlaneMemoryInfo structure, the difference of the size of pname:memory and pname:memoryOffset must: be greater than or equal to the pname:size member of the slink:VkMemoryRequirements structure returned from a call - to flink:vkGetImageMemoryRequirements2 with the same pname:image and the - correct pname:planeAspect for this plane in the - slink:VkImagePlaneMemoryRequirementsInfo structure included in the + to flink:vkGetImageMemoryRequirements2 with the same pname:image and + where slink:VkBindImagePlaneMemoryInfo::pname:planeAspect corresponds to + the slink:VkImagePlaneMemoryRequirementsInfo::pname:planeAspect in the slink:VkImageMemoryRequirementsInfo2 structure's pname:pNext chain endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] ifdef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/samplers.txt new/Vulkan-Docs-1.2.133/chapters/samplers.txt --- old/Vulkan-Docs-1.2.132/chapters/samplers.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/samplers.txt 2020-02-16 02:32:38.000000000 +0100 @@ -629,6 +629,11 @@ Setting pname:forceExplicitReconstruction to ename:VK_TRUE may: have a performance penalty on implementations where explicit reconstruction is not the default mode of operation. + +If pname:format supports +ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT +the pname:forceExplicitReconstruction value behaves as if it was set to +ename:VK_TRUE. ==== ifdef::VK_ANDROID_external_memory_android_hardware_buffer[] @@ -710,12 +715,12 @@ pname:format must: each have a bit-depth greater than or equal to 8. * [[VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656]] If the format does not support - ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, - pname:forceExplicitReconstruction must: be FALSE + ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT + pname:forceExplicitReconstruction must: be ename:VK_FALSE * [[VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657]] If the format does not support ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, - pname:chromaFilter must: be ename:VK_FILTER_NEAREST + pname:chromaFilter must: not be ename:VK_FILTER_LINEAR **** include::{generated}/validity/structs/VkSamplerYcbcrConversionCreateInfo.txt[] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/chapters/shaders.txt new/Vulkan-Docs-1.2.133/chapters/shaders.txt --- old/Vulkan-Docs-1.2.132/chapters/shaders.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/chapters/shaders.txt 2020-02-16 02:32:38.000000000 +0100 @@ -900,13 +900,13 @@ All invocations executed on a single device form a _device scope instance_. -ifdef::VK_KHR_vulkan_memory_model[] +ifdef::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] If the <<features-vulkanMemoryModel,pname:vulkanMemoryModel>> and <<features-vulkanMemoryModelDeviceScope, pname:vulkanMemoryModelDeviceScope>> features are enabled, this scope is represented in SPIR-V by the code:Device code:Scope, which can: be used as a code:Memory code:Scope for barrier and atomic operations. -endif::VK_KHR_vulkan_memory_model[] +endif::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] There is no method to synchronize the execution of these invocations within SPIR-V, and this can: only be done with API synchronization primitives. @@ -924,11 +924,11 @@ scope instance_. This scope is identified in SPIR-V as the -ifdef::VK_KHR_vulkan_memory_model[] +ifdef::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] code:QueueFamily code:Scope if the <<features-vulkanMemoryModel,pname:vulkanMemoryModel>> feature is enabled, or if not, the -endif::VK_KHR_vulkan_memory_model[] +endif::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] code:Device code:Scope, which can: be used as a code:Memory code:Scope for barrier and atomic operations. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/config/chunkindex/chunked.css new/Vulkan-Docs-1.2.133/config/chunkindex/chunked.css --- old/Vulkan-Docs-1.2.132/config/chunkindex/chunked.css 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/config/chunkindex/chunked.css 2020-02-16 02:32:38.000000000 +0100 @@ -7,6 +7,7 @@ * http://www.apache.org/licenses/LICENSE-2.0 */ +/* a.headerlink { display: none; text-decoration: none; } h2:hover a.headerlink { display: inline; } @@ -14,6 +15,7 @@ h4:hover a.headerlink { display: inline; } h5:hover a.headerlink { display: inline; } h6:hover a.headerlink { display: inline; } +*/ div.searchbox { background-color: white; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/config/chunkindex/chunked.js new/Vulkan-Docs-1.2.133/config/chunkindex/chunked.js --- old/Vulkan-Docs-1.2.132/config/chunkindex/chunked.js 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/config/chunkindex/chunked.js 2020-02-16 02:32:38.000000000 +0100 @@ -144,18 +144,7 @@ toc.scrollTop -= 96; } - // add anchor links - ["h2","h3","h4","h5","h6"].forEach(function(hX) { - var headers = document.getElementsByTagName(hX); - - for(var i=0; i < headers.length; i++) { - var header = headers[i]; - if(header.id.length > 0) { - header.innerHTML += ' <a class="headerlink" href="#' + header.id + '\">\u00B6</a>'; - } - } - }); - + // add anchor links to code blocks var blocks = document.getElementsByClassName("listingblock") for(var i=0; i < blocks.length; i++) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/config/khronos.css new/Vulkan-Docs-1.2.133/config/khronos.css --- old/Vulkan-Docs-1.2.132/config/khronos.css 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/config/khronos.css 2020-02-16 02:32:38.000000000 +0100 @@ -715,3 +715,10 @@ /* From https://github.com/KhronosGroup/Vulkan-Docs/pull/901 */ a code { color: inherit; } + +/* Make VUID anchor handles*/ +li > p > a[id^="VUID-"] { visibility: hidden; position: absolute; z-index: 1001; width: 2.2ex; margin-left: -2.2ex; display: block; text-decoration: none !important; text-align: center; font-weight: normal; } +li > p > a[id^="VUID-"]:before { content: "\00A7"; font-size: 1em; display: block; padding-top: 0em; background: #fff } +li > p:hover > a[id^="VUID-"], li > p > a[id^="VUID-"]:hover { visibility: visible; } +li > p > a[id^="VUID-"].link { color: black; text-decoration: none; } /* TODO: not quite sure what these two do */ +li > p > a[id^="VUID-"].link:hover { color: black; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/registry.txt new/Vulkan-Docs-1.2.133/registry.txt --- old/Vulkan-Docs-1.2.132/registry.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/registry.txt 2020-02-16 02:32:38.000000000 +0100 @@ -684,11 +684,15 @@ == Attributes of tag:enum tags - * attr:value or attr:bitpos - exactly one of these is allowed and - required. attr:value is an enumerant value in the form of a legal C - constant (usually a literal decimal or hexadecimal integer, though - arbitrary strings are allowed). attr:bitpos is a literal integer bit - position in a bitmask. + * attr:value is an enumerant value in the form of a legal C constant + (usually a literal decimal or hexadecimal integer, though arbitrary + strings are allowed). + * attr:bitpos is a literal integer bit position in a bitmask. + The bit position must be in the range [0,30] when used as a flag bit in + a `Vk*FlagBits` data type. + Bit positions 31 and up may be used for values that are not flag bits. + Exactly one of attr:value and attr:bitpos must be present in an tag:enum + tag. * attr:name - required. Enumerant name, a legal C preprocessor token name. * attr:api - optional. An API name which specializes this definition @@ -1324,6 +1328,9 @@ as an tag:enum tag in an <<tag-enum,tag:enums>> block. * attr:bitpos - define a constant bitmask value in the same fashion as an <<tag-enum,tag:enum>> tag in an tag:enums block. + attr:bitpos is a literal integer bit position in a bitmask. + The same value and usage constraints apply to this bit position as are + applied to the <<tag-enum, attr:bitpos attribute of an tag:enum tag. * attr:extends - the name of a separately defined enumerated type (e.g. a tag:type tag with attr:category``="enum"``) to which the extension enumerant is added. If not present, the enumerant is treated as a global @@ -1399,14 +1406,14 @@ <extensions> <extension name="VK_KHR_test_extension" number="1" supported="vulkan"> <require> - <enum value="42" name="VK_KHR_theanswer"/> - <enum bitpos="29" name="VK_KHR_bitmask"/> + <enum value="42" name="VK_KHR_TEST_ANSWER"/> + <enum bitpos="29" name="VK_KHR_TEST_BITMASK"/> <enum offset="0" dir="-" extends="VkResult" name="VK_ERROR_SURFACE_LOST_KHR"/> <enum offset="1" extends="VkResult" name="VK_SUBOPTIMAL_KHR"/> - <enum bitpos="31" extends="VkResult" - name="VK_KHR_EXTENSION_BIT"/> + <enum bitpos="30" extends="VkCullModeFlagBits" + name="VK_KHR_TEST_CULL_MODE_BIT"/> </require> </extension> </extensions> @@ -1907,7 +1914,7 @@ definition for compile time constants described above. In this case, because the enumerants are bits in a bitmask, their values are specified using the attr:bitpos attribute. The value of this attribute must be an integer in -the range [0,31] specifying a single bit number, and the resulting value +the range [0,30] specifying a single bit number, and the resulting value is printed as a hexadecimal constant corresponding to that bit. It is also possible to specify enumerant values using the attr:value @@ -2040,6 +2047,8 @@ [[changelog]] = Change Log + * 2020-01-13 - Restrict attr:bitpos to [0,30] to avoid poorly defined + compiler behavior. * 2019-08-25 - Add attr:sortorder attribute to tag:feature and tag:extension tags. * 2018-12-06 - Specify that command aliases are not guaranteed to resolve diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/scripts/conventions.py new/Vulkan-Docs-1.2.133/scripts/conventions.py --- old/Vulkan-Docs-1.2.132/scripts/conventions.py 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/scripts/conventions.py 2020-02-16 02:32:38.000000000 +0100 @@ -350,3 +350,12 @@ Must implement.""" raise NotImplementedError + + def valid_flag_bit(self, bitpos): + """Return True if bitpos is an allowed numeric bit position for + an API flag. + + Behavior depends on the data type used for flags (which may be 32 + or 64 bits), and may depend on assumptions about compiler + handling of sign bits in enumerated types, as well.""" + return True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/scripts/genanchorlinks.py new/Vulkan-Docs-1.2.133/scripts/genanchorlinks.py --- old/Vulkan-Docs-1.2.132/scripts/genanchorlinks.py 1970-01-01 01:00:00.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/scripts/genanchorlinks.py 2020-02-16 02:32:38.000000000 +0100 @@ -0,0 +1,36 @@ +#!/usr/bin/python3 +# +# Copyright (c) 2020 The Khronos Group Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Script that adds href to <a> anchors + +import os,sys,re + +def genAnchorLinks(in_file, out_file): + try: + with open(in_file, 'r', encoding='utf8') as f: data = f.read() + except FileNotFoundError: + print('Error: File %s does not exist.' % in_file) + sys.exit(2) + + data = re.sub( r'(<a )(id="(VUID\-[\w\-:]+)")(>)', '\g<1>\g<2> href="#\g<3>"\g<4>', data) + with open(out_file, 'w', encoding='utf8') as f: data = f.write(data) + +if __name__ == '__main__': + if len(sys.argv) != 3: + print('Error: genanchorlinks.py requires two arguments.') + print('Usage: genanchorlinks.py infile.html outfile.html') + sys.exit(1) + genAnchorLinks(sys.argv[1], sys.argv[2]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/scripts/generator.py new/Vulkan-Docs-1.2.133/scripts/generator.py --- old/Vulkan-Docs-1.2.132/scripts/generator.py 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/scripts/generator.py 2020-02-16 02:32:38.000000000 +0100 @@ -327,6 +327,9 @@ bitpos = int(value, 0) numVal = 1 << bitpos value = '0x%08x' % numVal + if not self.genOpts.conventions.valid_flag_bit(bitpos): + msg='Enum {} uses bit position {}, which may result in undefined behavior or unexpected enumerant scalar data type' + self.logMsg('warn', msg.format(name, bitpos)) if bitpos >= 32: value = value + 'ULL' self.logMsg('diag', 'Enum', name, '-> bitpos [', numVal, ',', value, ']') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/scripts/reflow_count.py new/Vulkan-Docs-1.2.133/scripts/reflow_count.py --- old/Vulkan-Docs-1.2.132/scripts/reflow_count.py 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/scripts/reflow_count.py 2020-02-16 02:32:38.000000000 +0100 @@ -1,2 +1,2 @@ # The value to start tagging VU statements at, unless overridden by -nextvu -startVUID = 2860 +startVUID = 2864 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/scripts/validitygenerator.py new/Vulkan-Docs-1.2.133/scripts/validitygenerator.py --- old/Vulkan-Docs-1.2.132/scripts/validitygenerator.py 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/scripts/validitygenerator.py 2020-02-16 02:32:38.000000000 +0100 @@ -937,21 +937,20 @@ if len(extensionstructs) == 1: entry += '{} must: be {} or a pointer to a valid instance of {}'.format(self.makeParameterName(param_name), self.null, extensionstructs[0]) - return entry + else: + # More than one extension struct. + entry += 'Each {} member of any structure (including this one) in the pname:{} chain '.format( + self.makeParameterName(param_name), self.nextpointer_member_name) + entry += 'must: be either {} or a pointer to a valid instance of '.format( + self.null) - # More than one extension struct. - entry += 'Each {} member of any structure (including this one) in the pname:{} chain '.format( - self.makeParameterName(param_name), self.nextpointer_member_name) - entry += 'must: be either {} or a pointer to a valid instance of '.format( - self.null) - - entry += self.makeProseList(extensionstructs, fmt=plf.OR) + entry += self.makeProseList(extensionstructs, fmt=plf.OR) validity = self.makeValidityCollection(blockname) validity += entry # OpenXR allows non-unique type values. Instances other than the first are just ignored - validity.addValidityEntry('Each pname:' + self.structtype_member_name + ' member in the pname:' + self.nextpointer_member_name + ' chain must: be unique', + validity.addValidityEntry('The pname:' + self.structtype_member_name + ' value of each struct in the pname:' + self.nextpointer_member_name + ' chain must: be unique', anchor=(self.conventions.member_used_for_unique_vuid, 'unique')) return validity diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/scripts/vkconventions.py new/Vulkan-Docs-1.2.133/scripts/vkconventions.py --- old/Vulkan-Docs-1.2.132/scripts/vkconventions.py 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/scripts/vkconventions.py 2020-02-16 02:32:38.000000000 +0100 @@ -259,3 +259,12 @@ """Return path relative to the generated reference pages, to the generated API include files.""" return "{generated}" + + def valid_flag_bit(self, bitpos): + """Return True if bitpos is an allowed numeric bit position for + an API flag bit. + + Vulkan uses 32 bit Vk*Flags types, and assumes C compilers may + cause Vk*FlagBits values with bit 31 set to result in a 64 bit + enumerated type, so disallows such flags.""" + return bitpos >= 0 and bitpos < 31 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/style/markup.txt new/Vulkan-Docs-1.2.133/style/markup.txt --- old/Vulkan-Docs-1.2.132/style/markup.txt 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/style/markup.txt 2020-02-16 02:32:38.000000000 +0100 @@ -362,17 +362,19 @@ All figures (images) must be marked up as follows, to ensure there is an anchor and that the figure is given a caption which shows the figure number -and is added to the list of figures: +and is added to the list of figures. [source,asciidoc] .Example Markup ---- [[fig-anchorname]] -image::images/imagename.svg[align="center",title="Figure caption",opts="{imageopts}"] +image::images/{images}/imagename.svg[align="center",title="Figure caption",opts="{imageopts}"] ---- There must be SVG versions of each figure checked into the `images/` directory, to support generating both HTML and PDF outputs. +This directory is referred to as `{images}` so that there's a consistent +path no matter what directory the file including the images is in. The PDF generation pipeline is now able to use SVG images, so PDF versions of each image are no longer required. The `opts=` attribute defaults to `inline`, which decreases output image diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Docs-1.2.132/xml/vk.xml new/Vulkan-Docs-1.2.133/xml/vk.xml --- old/Vulkan-Docs-1.2.132/xml/vk.xml 2020-01-21 11:25:05.000000000 +0100 +++ new/Vulkan-Docs-1.2.133/xml/vk.xml 2020-02-16 02:32:38.000000000 +0100 @@ -156,7 +156,7 @@ <type category="define">// Vulkan 1.2 version number #define <name>VK_API_VERSION_1_2</name> <type>VK_MAKE_VERSION</type>(1, 2, 0)// Patch version should always be set to 0</type> <type category="define">// Version of this file -#define <name>VK_HEADER_VERSION</name> 132</type> +#define <name>VK_HEADER_VERSION</name> 133</type> <type category="define"> #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type> @@ -5646,7 +5646,8 @@ <enum value="0x10001" name="VK_VENDOR_ID_VIV" comment="Vivante vendor ID"/> <enum value="0x10002" name="VK_VENDOR_ID_VSI" comment="VeriSilicon vendor ID"/> <enum value="0x10003" name="VK_VENDOR_ID_KAZAN" comment="Kazan Software Renderer"/> - <unused start="0x10004" comment="This is the next unused available Khronos vendor ID"/> + <enum value="0x10004" name="VK_VENDOR_ID_CODEPLAY" comment="Codeplay Software Ltd. vendor ID"/> + <unused start="0x10005" comment="This is the next unused available Khronos vendor ID"/> </enums> <enums name="VkDriverId" type="enum"> <comment>Driver IDs are now represented as enums instead of the old @@ -7865,7 +7866,7 @@ <param><type>uint32_t</type> <name>stride</name></param> </command> <command name="vkCmdDrawIndexedIndirectCountKHR" alias="vkCmdDrawIndexedIndirectCount"/> - <command name="vkCmdDrawIndexedIndirectCountAMD" alias="vkCmdDrawIndexedIndirectCountKHR"/> + <command name="vkCmdDrawIndexedIndirectCountAMD" alias="vkCmdDrawIndexedIndirectCount"/> <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdSetCheckpointNV</name></proto> <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> @@ -9730,13 +9731,13 @@ <enum value=""VK_KHR_shader_draw_parameters"" name="VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_EXT_shader_subgroup_ballot" number="65" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan"> + <extension name="VK_EXT_shader_subgroup_ballot" number="65" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan" deprecatedby="VK_VERSION_1_2"> <require> <enum value="1" name="VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION"/> <enum value=""VK_EXT_shader_subgroup_ballot"" name="VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_EXT_shader_subgroup_vote" number="66" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan"> + <extension name="VK_EXT_shader_subgroup_vote" number="66" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan" deprecatedby="VK_VERSION_1_1"> <require> <enum value="1" name="VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION"/> <enum value=""VK_EXT_shader_subgroup_vote"" name="VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME"/> @@ -12351,10 +12352,10 @@ <enum value=""VK_NV_extension_293"" name="VK_NV_EXTENSION_293_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_KHR_extension_294" number="294" author="KHR" contact="Baldur Karlsson @baldurk" supported="disabled"> + <extension name="VK_KHR_shader_non_semantic_info" number="294" type="device" author="KHR" contact="Baldur Karlsson @baldurk" supported="vulkan"> <require> - <enum value="0" name="VK_KHR_EXTENSION_294_SPEC_VERSION"/> - <enum value=""VK_KHR_extension_294"" name="VK_KHR_EXTENSION_294_EXTENSION_NAME"/> + <enum value="1" name="VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION"/> + <enum value=""VK_KHR_shader_non_semantic_info"" name="VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME"/> </require> </extension> <extension name="VK_KHR_extension_295" number="295" author="KHR" contact="Keith Packard @keithp" supported="disabled"> @@ -12453,5 +12454,12 @@ <enum bitpos="2" extends="VkMemoryHeapFlagBits" name="VK_MEMORY_HEAP_RESERVED_2_BIT_KHR"/> </require> </extension> + <extension name="VK_QCOM_extension_310" number="310" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled"> + <require> + <enum value="0" name="VK_QCOM_extension_310_SPEC_VERSION"/> + <enum value=""VK_QCOM_extension_310"" name="VK_QCOM_extension_310_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RESERVED_QCOM"/> + </require> + </extension> </extensions> </registry>
