diff --git a/ChangeLog.txt b/ChangeLog.txt index 1e565950a4..e341fa45d8 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -12,6 +12,45 @@ public pull requests that have been accepted. ----------------------------------------------------- +Change log for August 10, 2020 Vulkan 1.2.150 spec update: + + * Update release number to 150 for this update. + +Github Issues: + + * Remove ename:VK_ERROR_TOO_MANY_OBJECTS as a required error code for + flink:vkAllocateMemory and and flink:vkCreateSampler, and note that + while it may still occur as a historical artifact, exceeding + implementation limits will result in undefined behavior (public issue + 1295). + * Allow duplicate slink:VkDebugUtilsMessengerCreateInfoEXT structs in + pname:pNext chain (public issue 1329) + * Fix typo in slink:VkSubmitInfo valid usage statement 04120 (public merge + request 1336). + * Remove `KHR` suffix from some names promoted to core, in the + <> chapter (public merge request 1341). + +Internal Issues: + + * Add ename:VK_ERROR_OUT_OF_HOST_MEMORY to `vk.xml` as a possible error + code for some additional commands returing elink:VkResult, and add a + note to the description of elink:VkResult giving some guidance on which + commands may and may not return that error code (internal issue 2063). + * Make a handful of terminology changes which move this repository closer + to the conventions of the AOSP + https://source.android.com/setup/contribute/respectful-code[Coding with + Respect] document (internal issue 2282). + * Update `<>` and `<>` + documentation and mark them as deprecated and replaced by + `<>` (internal merge request 4024). + * Add a section to the style guide on markup for the copyright and license + block on files in the repository (internal merge request 4036). + * Add ename:VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT to + `<>` to enable synchronization validation + (internal merge request 4037). + +----------------------------------------------------- + Change log for August 3, 2020 Vulkan 1.2.149 spec update: * Update release number to 149 for this update. @@ -4459,7 +4498,7 @@ Github Issues: Internal Issues: - * Specify a whitelist of supported SPIR-V Storage Classes in the + * Specify a list of supported SPIR-V Storage Classes in the <> appendix (internal SPIR-V issue 166). * Relax the shared semaphore wait timeout requirement in the diff --git a/Makefile b/Makefile index ef0a124919..f8b872dbd0 100644 --- a/Makefile +++ b/Makefile @@ -109,7 +109,7 @@ VERBOSE = # ADOCOPTS options for asciidoc->HTML5 output NOTEOPTS = -a editing-notes -a implementation-guide -PATCHVERSION = 149 +PATCHVERSION = 150 ifneq (,$(findstring VK_VERSION_1_2,$(VERSIONS))) SPECREVISION = 1.2.$(PATCHVERSION) else diff --git a/appendices/VK_EXT_acquire_xlib_display.txt b/appendices/VK_EXT_acquire_xlib_display.txt index 91c0009d46..cad73c3439 100644 --- a/appendices/VK_EXT_acquire_xlib_display.txt +++ b/appendices/VK_EXT_acquire_xlib_display.txt @@ -38,8 +38,8 @@ Vulkan display handle as input? *RESOLVED*: A Vulkan display handle. Otherwise there would be no way to specify handles to displays that had been -"`blacklisted`" or prevented from being included in the X11 display list by -some native platform or vendor-specific mechanism. +prevented from being included in the X11 display list by some native +platform or vendor-specific mechanism. 2) How does an application figure out which RandR display corresponds to a Vulkan display? diff --git a/appendices/VK_EXT_validation_features.txt b/appendices/VK_EXT_validation_features.txt index 948129bc6b..8b5c8cee9b 100644 --- a/appendices/VK_EXT_validation_features.txt +++ b/appendices/VK_EXT_validation_features.txt @@ -16,6 +16,7 @@ include::{generated}/meta/{refprefix}VK_EXT_validation_features.txt[] - Mark Lobodzinski, LunarG - Camden Stocker, LunarG - Tony Barbour, LunarG + - John Zulauf, LunarG === Description @@ -47,3 +48,5 @@ include::{generated}/interfaces/VK_EXT_validation_features.txt[] - Add Best Practices enable * Revision 3, 2020-03-04 (Tony Barbour) - Add Debug Printf enable + * Revision 4, 2020-07-29 (John Zulauf) + - Add Synchronization Validation enable diff --git a/appendices/VK_KHR_display.txt b/appendices/VK_KHR_display.txt index bccff8c1d0..f51f51939b 100644 --- a/appendices/VK_KHR_display.txt +++ b/appendices/VK_KHR_display.txt @@ -118,7 +118,8 @@ object. *PROPOSED RESOLUTION*: Developers prefer to query modes directly from the physical GPU so they can use display information as an input to their device selection algorithms prior to device creation. -This avoids the need to create dummy device instances to enumerate displays. +This avoids the need to create placeholder device instances to enumerate +displays. This preference must be weighed against the extra initialization that must be done by driver vendors prior to device instance creation to support this diff --git a/appendices/VK_MVK_ios_surface.txt b/appendices/VK_MVK_ios_surface.txt index 92934817cd..f01a7402f5 100644 --- a/appendices/VK_MVK_ios_surface.txt +++ b/appendices/VK_MVK_ios_surface.txt @@ -7,7 +7,7 @@ include::{generated}/meta/{refprefix}VK_MVK_ios_surface.txt[] === Other Extension Metadata *Last Modified Date*:: - 2017-02-24 + 2020-07-31 *IP Status*:: No known IP claims. *Contributors*:: @@ -17,10 +17,17 @@ include::{generated}/meta/{refprefix}VK_MVK_ios_surface.txt[] The `VK_MVK_ios_surface` extension is an instance extension. It provides a mechanism to create a slink:VkSurfaceKHR object (defined by -the `<>` extension) that refers to a code:UIView, the native +the `<>` extension) based on a code:UIView, the native surface type of iOS, which is underpinned by a basetype:CAMetalLayer, to support rendering to the surface using Apple's Metal framework. +ifdef::VK_EXT_metal_surface[] +=== Deprecation by `VK_EXT_metal_surface` + +The `VK_MVK_ios_surface` extension is considered deprecated and has been +superseded by the `<>` extension. +endif::VK_EXT_metal_surface[] + include::{generated}/interfaces/VK_MVK_ios_surface.txt[] === Version History @@ -29,5 +36,9 @@ include::{generated}/interfaces/VK_MVK_ios_surface.txt[] - Initial draft. * Revision 2, 2017-02-24 (Bill Hollings) - - Minor syntax fix to emphasize firm requirement for UIView to be backed - by a CAMetalLayer. + - Minor syntax fix to emphasize firm requirement for `UIView` to be + backed by a `CAMetalLayer`. + + * Revision 3, 2020-07-31 (Bill Hollings) + - Update documentation on requirements for UIView. + - Mark as deprecated by `VK_EXT_metal_surface`. diff --git a/appendices/VK_MVK_macos_surface.txt b/appendices/VK_MVK_macos_surface.txt index 3b10c509cb..642d0f4a53 100644 --- a/appendices/VK_MVK_macos_surface.txt +++ b/appendices/VK_MVK_macos_surface.txt @@ -7,7 +7,7 @@ include::{generated}/meta/{refprefix}VK_MVK_macos_surface.txt[] === Other Extension Metadata *Last Modified Date*:: - 2017-02-24 + 2020-07-31 *IP Status*:: No known IP claims. *Contributors*:: @@ -17,10 +17,16 @@ include::{generated}/meta/{refprefix}VK_MVK_macos_surface.txt[] The `VK_MVK_macos_surface` extension is an instance extension. It provides a mechanism to create a slink:VkSurfaceKHR object (defined by -the `<>` extension) that refers to an code:NSView, the -native surface type of macOS, which is underpinned by a -basetype:CAMetalLayer, to support rendering to the surface using Apple's -Metal framework. +the `<>` extension) based on an code:NSView, the native +surface type of macOS, which is underpinned by a basetype:CAMetalLayer, to +support rendering to the surface using Apple's Metal framework. + +ifdef::VK_EXT_metal_surface[] +=== Deprecation by `VK_EXT_metal_surface` + +The `VK_MVK_macos_surface` extension is considered deprecated and has been +superseded by the `<>` extension. +endif::VK_EXT_metal_surface[] include::{generated}/interfaces/VK_MVK_macos_surface.txt[] @@ -30,5 +36,9 @@ include::{generated}/interfaces/VK_MVK_macos_surface.txt[] - Initial draft. * Revision 2, 2017-02-24 (Bill Hollings) - - Minor syntax fix to emphasize firm requirement for NSView to be backed - by a CAMetalLayer. + - Minor syntax fix to emphasize firm requirement for `NSView` to be + backed by a `CAMetalLayer`. + + * Revision 3, 2020-07-31 (Bill Hollings) + - Update documentation on requirements for `NSView`. + - Mark as deprecated by `VK_EXT_metal_surface`. diff --git a/chapters/VK_EXT_validation_features.txt b/chapters/VK_EXT_validation_features.txt index 78fff61c6f..b3d855ffaa 100644 --- a/chapters/VK_EXT_validation_features.txt +++ b/chapters/VK_EXT_validation_features.txt @@ -74,6 +74,12 @@ include::{generated}/api/enums/VkValidationFeatureEnableEXT.txt[] layers will process code:debugPrintfEXT operations in shaders and send the resulting output to the debug callback. This feature is disabled by default. + * ename:VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT + specifies that Vulkan synchronization validation is enabled. + This feature reports resource access conflicts due to missing or + incorrect synchronization operations between actions (Draw, Copy, + Dispatch, Blit) reading or writing the same regions of memory. + This feature is disabled by default. -- diff --git a/chapters/VK_MVK_ios_surface/platformCreateSurface_ios.txt b/chapters/VK_MVK_ios_surface/platformCreateSurface_ios.txt index a2f36f21cf..747016c1e0 100644 --- a/chapters/VK_MVK_ios_surface/platformCreateSurface_ios.txt +++ b/chapters/VK_MVK_ios_surface/platformCreateSurface_ios.txt @@ -9,10 +9,21 @@ [open,refpage='vkCreateIOSSurfaceMVK',desc='Create a VkSurfaceKHR object for an iOS UIView',type='protos'] -- -To create a sname:VkSurfaceKHR object for an iOS code:UIView, call: +To create a sname:VkSurfaceKHR object for an iOS code:UIView or +basetype:CAMetalLayer, call: include::{generated}/api/protos/vkCreateIOSSurfaceMVK.txt[] +ifdef::VK_EXT_metal_surface[] +[NOTE] +.Note +==== +The `vkCreateIOSSurfaceMVK` function is considered deprecated and has been +superseded by flink:vkCreateMetalSurfaceEXT from the +`<>` extension. +==== +endif::VK_EXT_metal_surface[] + * pname:instance is the instance with which to associate the surface. * pname:pCreateInfo is a pointer to a slink:VkIOSSurfaceCreateInfoMVK structure containing parameters affecting the creation of the surface @@ -37,16 +48,18 @@ include::{generated}/api/structs/VkIOSSurfaceCreateInfoMVK.txt[] * pname:pNext is `NULL` or a pointer to a structure extending this structure. * pname:flags is reserved for future use. - * pname:pView is a reference to a code:UIView object which will display - this surface. - This code:UIView must: be backed by a code:CALayer instance of type - basetype:CAMetalLayer. + * pname:pView is a reference to either a basetype:CAMetalLayer object or a + code:UIView object. .Valid Usage **** + * [[VUID-VkIOSSurfaceCreateInfoMVK-pView-04143]] + If pname:pView is a basetype:CAMetalLayer object, it must: be a valid + basetype:CAMetalLayer. * [[VUID-VkIOSSurfaceCreateInfoMVK-pView-01316]] - pname:pView must: be a valid code:UIView and must: be backed by a - code:CALayer instance of type basetype:CAMetalLayer + If pname:pView is a code:UIView object, it must: be a valid code:UIView, + must: be backed by a code:CALayer object of type basetype:CAMetalLayer, + and flink:vkCreateIOSSurfaceMVK must: be called on the main thread. **** include::{generated}/validity/structs/VkIOSSurfaceCreateInfoMVK.txt[] diff --git a/chapters/VK_MVK_macos_surface/platformCreateSurface_macos.txt b/chapters/VK_MVK_macos_surface/platformCreateSurface_macos.txt index 426dc5d793..2c3fbc249d 100644 --- a/chapters/VK_MVK_macos_surface/platformCreateSurface_macos.txt +++ b/chapters/VK_MVK_macos_surface/platformCreateSurface_macos.txt @@ -9,10 +9,21 @@ [open,refpage='vkCreateMacOSSurfaceMVK',desc='Create a VkSurfaceKHR object for a macOS NSView',type='protos'] -- -To create a sname:VkSurfaceKHR object for a macOS code:NSView, call: +To create a sname:VkSurfaceKHR object for a macOS code:NSView or +basetype:CAMetalLayer, call: include::{generated}/api/protos/vkCreateMacOSSurfaceMVK.txt[] +ifdef::VK_EXT_metal_surface[] +[NOTE] +.Note +==== +The `vkCreateMacOSSurfaceMVK` function is considered deprecated and has been +superseded by flink:vkCreateMetalSurfaceEXT from the +`<>` extension. +==== +endif::VK_EXT_metal_surface[] + * pname:instance is the instance with which to associate the surface. * pname:pCreateInfo is a pointer to a slink:VkMacOSSurfaceCreateInfoMVK structure containing parameters affecting the creation of the surface @@ -37,16 +48,19 @@ include::{generated}/api/structs/VkMacOSSurfaceCreateInfoMVK.txt[] * pname:pNext is `NULL` or a pointer to a structure extending this structure. * pname:flags is reserved for future use. - * pname:pView is a reference to a code:NSView object which will display - this surface. - This code:NSView must: be backed by a code:CALayer instance of type - basetype:CAMetalLayer. + * pname:pView is a reference to either a basetype:CAMetalLayer object or + an code:NSView object. .Valid Usage **** + * [[VUID-VkMacOSSurfaceCreateInfoMVK-pView-04144]] + If pname:pView is a basetype:CAMetalLayer object, it must: be a valid + basetype:CAMetalLayer. * [[VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317]] - pname:pView must: be a valid code:NSView and must: be backed by a - code:CALayer instance of type basetype:CAMetalLayer + If pname:pView is an code:NSView object, it must: be a valid + code:NSView, must: be backed by a code:CALayer object of type + basetype:CAMetalLayer, and flink:vkCreateMacOSSurfaceMVK must: be called + on the main thread. **** include::{generated}/validity/structs/VkMacOSSurfaceCreateInfoMVK.txt[] diff --git a/chapters/fundamentals.txt b/chapters/fundamentals.txt index e03873e73e..f9a0e48b83 100644 --- a/chapters/fundamentals.txt +++ b/chapters/fundamentals.txt @@ -1255,10 +1255,20 @@ 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. +etext:VK_ERROR_OUT_OF_*_MEMORY errors do not modify any currently existing +Vulkan objects. Objects that have already been successfully created can: still be used by the application. +[NOTE] +.Note +==== +As a general rule, ftext:Free, ftext:Release, and ftext:Reset commands do +not return ename:VK_ERROR_OUT_OF_HOST_MEMORY, while any other command with a +return code may: return it. +Any exceptions from this rule are described for those commands. +==== + ename:VK_ERROR_UNKNOWN will be returned by an implementation when an unexpected error occurs that cannot be attributed to valid behavior of the application and implementation. diff --git a/chapters/initialization.txt b/chapters/initialization.txt index 02bb8fe044..140b3e82c2 100644 --- a/chapters/initialization.txt +++ b/chapters/initialization.txt @@ -144,7 +144,7 @@ include::{generated}/validity/protos/vkGetDeviceProcAddr.txt[] -- -[open,refpage='PFN_vkVoidFunction',desc='Dummy function pointer type returned by queries',type='funcpointers',xrefs='vkGetDeviceProcAddr vkGetInstanceProcAddr'] +[open,refpage='PFN_vkVoidFunction',desc='Placeholder function pointer type returned by queries',type='funcpointers',xrefs='vkGetDeviceProcAddr vkGetInstanceProcAddr'] -- The definition of tlink:PFN_vkVoidFunction is: diff --git a/chapters/memory.txt b/chapters/memory.txt index 16458d9408..8593cb7dc9 100644 --- a/chapters/memory.txt +++ b/chapters/memory.txt @@ -1001,13 +1001,20 @@ endif::VK_VERSION_1_1[] The maximum number of valid memory allocations that can: exist simultaneously within a slink:VkDevice may: be restricted by implementation- or platform-dependent limits. -If a call to flink:vkAllocateMemory would cause the total number of -allocations to exceed these limits, such a call will fail and must: return -ename:VK_ERROR_TOO_MANY_OBJECTS. The <> feature describes the number of allocations that can: exist simultaneously before encountering these internal limits. +[NOTE] +.Note +==== +For historical reasons, if pname:maxMemoryAllocationCount is exceeded, some +implementations may return ename:VK_ERROR_TOO_MANY_OBJECTS. +Exceeding this limit will result in undefined behavior, and an application +should not rely on the use of the returned error code in order to identify +when the limit is reached. +==== + Some platforms may: have a limit on the maximum size of a single allocation. For example, certain systems may: fail to create allocations with a size greater than or equal to 4GB. diff --git a/chapters/samplers.txt b/chapters/samplers.txt index 419f867c33..0d8e3030a2 100644 --- a/chapters/samplers.txt +++ b/chapters/samplers.txt @@ -149,8 +149,16 @@ The maximum number of sampler objects which can: be simultaneously created on a device is implementation-dependent and specified by the <> member of the slink:VkPhysicalDeviceLimits structure. -If pname:maxSamplerAllocationCount is exceeded, fname:vkCreateSampler will -return ename:VK_ERROR_TOO_MANY_OBJECTS. + +[NOTE] +.Note +==== +For historical reasons, if pname:maxSamplerAllocationCount is exceeded, some +implementations may return ename:VK_ERROR_TOO_MANY_OBJECTS. +Exceeding this limit will result in undefined behavior, and an application +should not rely on the use of the returned error code in order to identify +when the limit is reached. +==== Since slink:VkSampler is a non-dispatchable handle type, implementations may: return the same handle for sampler state vectors that are identical. diff --git a/chapters/sparsemem.txt b/chapters/sparsemem.txt index 17d63047d7..108ad0d593 100644 --- a/chapters/sparsemem.txt +++ b/chapters/sparsemem.txt @@ -557,14 +557,14 @@ Any implementation that cannot: access unbound pages without causing a fault will require the implementation to bind the entire device virtual address range to physical memory. Any pages that the application does not bind to memory may: be bound to one -(or more) "`dummy`" physical page(s) allocated by the implementation. +(or more) "`placeholder" physical page(s) allocated by the implementation. Given the following properties: * A process must: not access memory from another process * Reads return undefined: values -It is sufficient for each host process to allocate these dummy pages and use -them for all resources in that process. +It is sufficient for each host process to allocate these placeholder pages +and use them for all resources in that process. Implementations may: allocate more often (per instance, per device, or per resource). diff --git a/registry.txt b/registry.txt index 74990160fa..9b1c96f249 100644 --- a/registry.txt +++ b/registry.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2013-2020 Khronos Group. +// Copyright 2013-2020 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 @@ -1713,7 +1713,7 @@ extern "C" { #endif #if defined(VK_TYPE_SAFE_COMPATIBLE_HANDLES) && !defined(VK_DISABLE_TYPE_SAFE_HANDLES) - #define VK_DEFINE_PTR_HANDLE(_obj) struct _obj##_T { char _dummy; }; typedef _obj##_T* _obj; + #define VK_DEFINE_PTR_HANDLE(_obj) struct _obj##_T { char _placeholder; }; typedef _obj##_T* _obj; #define VK_DEFINE_PTR_SUBCLASS_HANDLE(_obj, _base) struct _obj##_T : public _base##_T {}; typedef _obj##_T* _obj; #define VK_DEFINE_BASE_HANDLE(_obj) VK_DEFINE_PTR_HANDLE(_obj) diff --git a/scripts/docgenerator.py b/scripts/docgenerator.py index b81da5085d..21d0375780 100644 --- a/scripts/docgenerator.py +++ b/scripts/docgenerator.py @@ -366,7 +366,7 @@ def genEnumTable(self, groupinfo, groupName): if comment: got_comment = True elif name.endswith('_UNKNOWN') and numVal == 0: - # This is a dummy placeholder for 0-initialization to be clearly invalid. + # This is a placeholder for 0-initialization to be clearly invalid. # Just skip this silently continue else: diff --git a/scripts/extensionmetadocgenerator.py b/scripts/extensionmetadocgenerator.py index 9b0dfc00d1..a01d21640a 100644 --- a/scripts/extensionmetadocgenerator.py +++ b/scripts/extensionmetadocgenerator.py @@ -596,16 +596,16 @@ def getAttrib(self, elem, attribute, required=True, default=None): return attrib def numbersToWords(self, name): - whitelist = ['WIN32', 'INT16', 'D3D1'] + allowlist = ['WIN32', 'INT16', 'D3D1'] - # temporarily replace whitelist items - for i, w in enumerate(whitelist): + # temporarily replace allowlist items + for i, w in enumerate(allowlist): name = re.sub(w, '{' + str(i) + '}', name) name = re.sub(r'(?<=[A-Z])(\d+)(?![A-Z])', r'_\g<1>', name) - # undo whitelist substitution - for i, w in enumerate(whitelist): + # undo allowlist substitution + for i, w in enumerate(allowlist): name = re.sub('\\{' + str(i) + '}', w, name) return name diff --git a/scripts/generator.py b/scripts/generator.py index be6d65cb9f..c6e58720e4 100644 --- a/scripts/generator.py +++ b/scripts/generator.py @@ -370,7 +370,7 @@ def enumToValue(self, elem, needsNum): return [None, None] def checkDuplicateEnums(self, enums): - """Sanity check enumerated values. + """Check enumerated values for duplicates. - enums - list of `` Elements diff --git a/scripts/reflow.py b/scripts/reflow.py index 244084749c..a9642698a4 100755 --- a/scripts/reflow.py +++ b/scripts/reflow.py @@ -676,7 +676,7 @@ def reflowFile(filename, args): # Cleanup at end of file state.endPara(None) - # Sanity check on block nesting + # Check for sensible block nesting if len(state.blockStack) > 1: logWarn('file', filename, 'mismatched asciidoc block delimiters at EOF:', diff --git a/style/extensions.txt b/style/extensions.txt index 6c5d62342f..c6ff19371f 100644 --- a/style/extensions.txt +++ b/style/extensions.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2020 Khronos Group. +// Copyright 2015-2020 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 @@ -804,8 +804,8 @@ approved by a vote of the Vulkan Working Group. For EXT and vendor extension bitmask types, reservations must be approved by the listed contact of the extension. Bits are reserved in the same fashion as extension numbers, by creating a -dummy reservation for each bit in the disabled XML `` block for -that extension in the `master` branch. +placeholder reservation for each bit in the disabled XML `` block +for that extension in the `master` branch. Once the extension is ready to be merged into `master`, the `` block is updated with the actual name. An example reservation for a disabled extension is: diff --git a/style/markup.txt b/style/markup.txt index e3d59f5ef3..a41bff71ab 100644 --- a/style/markup.txt +++ b/style/markup.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2020 Khronos Group. +// Copyright 2015-2020 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 @@ -8,6 +8,63 @@ This chapter demonstrates Asciidoc and Specification structure, including text layout and markup style. + +[[markup-copyrights]] +== Copyrights and Licenses + +The asciidoctor source for the Vulkan Specification and related documents is +under an open source license. + +When creating a *new* file, add the following copyright and license +statement at the top: + +[source,asciidoc] +.Example Markup +---- +// Copyright YEAR AUTHOR +// +// SPDX-License-Identifier: CC-BY-4.0 + +---- + +`YEAR` should be replaced by the year in which the file was created. + +`AUTHOR` is normally "`The Khronos Group Inc.`". +If a new file is created by a member company or outside contributor, use +that entity's legal name as the author. + +`SPDX-License-Identifier` gives the license used for the file, following the +https://spdx.github.io/spdx-spec/appendix-V-using-SPDX-short-identifiers-in-source-files/[SPDX] +standard for short identifiers in source files. +`CC-BY-4.0` is the short identifier for the +https://spdx.org/licenses/CC-BY-4.0.html[Creative Commons Attribution 4.0 +International] license. + +No matter who holds the *copyright* on a source file for the Specification, +it must be placed under the `CC-BY-4.0` *license*. +When contributing to the Specification, contributors are required to execute +a Contributor License Agreement to this effect. + +When updating an *existing* file, modify the following copyright and license +statement to include the year(s) of modification. +For example: + +[source,asciidoc] +.Example Markup +---- +// Copyright 2018-2020 The Khronos Group Inc. +// +// SPDX-License-Identifier: CC-BY-4.0 + +---- + +indicates a file which has been been modified in 2018, 2019, and 2020 +inclusive. + + +[[markup-structure]] +== Document Structure + Chapters and sections follow a rigid template consisting of an optional anchor (if other parts of the document cross-reference the section) followed by a one line title (see diff --git a/style/misc.txt b/style/misc.txt index 4065455b6d..a5cf6b9351 100644 --- a/style/misc.txt +++ b/style/misc.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2020 Khronos Group. +// Copyright 2015-2020 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 diff --git a/style/naming.txt b/style/naming.txt index 44776fb717..189aa66a3b 100644 --- a/style/naming.txt +++ b/style/naming.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2020 Khronos Group. +// Copyright 2015-2020 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 diff --git a/style/vuid.txt b/style/vuid.txt index 5662fbf320..1a4e87b822 100644 --- a/style/vuid.txt +++ b/style/vuid.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2020 Khronos Group. +// Copyright 2015-2020 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 diff --git a/style/writing.txt b/style/writing.txt index 5a6f73c3fc..d557cb7f1e 100644 --- a/style/writing.txt +++ b/style/writing.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2020 Khronos Group. +// Copyright 2015-2020 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 diff --git a/styleguide.txt b/styleguide.txt index 2e8e01fe6a..512b3a849e 100644 --- a/styleguide.txt +++ b/styleguide.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2020 Khronos Group. +// Copyright 2014-2020 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 @@ -169,6 +169,8 @@ include::style/vuid.txt[] = Revision History +* 2020-08-28 - Add a <> section + describing how to properly attribute this information. * 2020-06-23 - Update the <> section to recommend placing most extension language inline in existing specification source files, rather than in separate diff --git a/vkspec.txt b/vkspec.txt index 4d5cb34a7e..08976b4c61 100644 --- a/vkspec.txt +++ b/vkspec.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2020 The Khronos Group Inc. +// Copyright 2014-2020 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 diff --git a/xml/vk.xml b/xml/vk.xml index c9b7fcf90c..de6228c421 100644 --- a/xml/vk.xml +++ b/xml/vk.xml @@ -135,7 +135,7 @@ server. // Vulkan 1.2 version number #define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 149 +#define VK_HEADER_VERSION 150 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION) @@ -3152,7 +3152,7 @@ typedef void CAMetalLayer; const char* pLabelName float color[4] - + VkStructureType sType const void* pNext VkDebugUtilsMessengerCreateFlagsEXT flags @@ -5773,6 +5773,7 @@ typedef void CAMetalLayer; + @@ -6354,7 +6355,7 @@ typedef void CAMetalLayer; all sname:VkQueue objects created from pname:device - + VkResult vkAllocateMemory VkDevice device const VkMemoryAllocateInfo* pAllocateInfo @@ -6463,7 +6464,7 @@ typedef void CAMetalLayer; VkFence fence const VkAllocationCallbacks* pAllocator - + VkResult vkResetFences VkDevice device uint32_t fenceCount @@ -6518,7 +6519,7 @@ typedef void CAMetalLayer; VkDevice device VkEvent event - + VkResult vkResetEvent VkDevice device VkEvent event @@ -6691,7 +6692,7 @@ typedef void CAMetalLayer; VkPipelineLayout pipelineLayout const VkAllocationCallbacks* pAllocator - + VkResult vkCreateSampler VkDevice device const VkSamplerCreateInfo* pCreateInfo @@ -6805,7 +6806,7 @@ typedef void CAMetalLayer; VkCommandPool commandPool const VkAllocationCallbacks* pAllocator - + VkResult vkResetCommandPool VkDevice device VkCommandPool commandPool @@ -6839,7 +6840,7 @@ typedef void CAMetalLayer; the sname:VkCommandPool that pname:commandBuffer was allocated from - + VkResult vkResetCommandBuffer VkCommandBuffer commandBuffer VkCommandBufferResetFlags flags @@ -7588,7 +7589,7 @@ typedef void CAMetalLayer; const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo HANDLE* pHandle - + VkResult vkGetMemoryWin32HandlePropertiesKHR VkDevice device VkExternalMemoryHandleTypeFlagBits handleType @@ -7601,7 +7602,7 @@ typedef void CAMetalLayer; const VkMemoryGetFdInfoKHR* pGetFdInfo int* pFd - + VkResult vkGetMemoryFdPropertiesKHR VkDevice device VkExternalMemoryHandleTypeFlagBits handleType @@ -7671,7 +7672,7 @@ typedef void CAMetalLayer; VkPhysicalDevice physicalDevice VkDisplayKHR display - + VkResult vkAcquireXlibDisplayEXT VkPhysicalDevice physicalDevice Display* dpy @@ -7705,7 +7706,7 @@ typedef void CAMetalLayer; const VkAllocationCallbacks* pAllocator VkFence* pFence - + VkResult vkGetSwapchainCounterEXT VkDevice device VkSwapchainKHR swapchain @@ -7832,13 +7833,13 @@ typedef void CAMetalLayer; VkDevice device VkSwapchainKHR swapchain - + VkResult vkGetRefreshCycleDurationGOOGLE VkDevice device VkSwapchainKHR swapchain VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties - + VkResult vkGetPastPresentationTimingGOOGLE VkDevice device VkSwapchainKHR swapchain @@ -8125,7 +8126,7 @@ typedef void CAMetalLayer; VkDebugUtilsMessageTypeFlagsEXT messageTypes const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData - + VkResult vkGetMemoryHostPointerPropertiesEXT VkDevice device VkExternalMemoryHandleTypeFlagBits handleType @@ -8188,7 +8189,7 @@ typedef void CAMetalLayer; const VkSemaphoreSignalInfo* pSignalInfo - + VkResult vkGetAndroidHardwareBufferPropertiesANDROID VkDevice device const struct AHardwareBuffer* buffer @@ -8543,7 +8544,7 @@ typedef void CAMetalLayer; VkDevice device const VkImageViewHandleInfoNVX* pInfo - + VkResult vkGetImageViewAddressNVX VkDevice device VkImageView imageView @@ -8586,7 +8587,7 @@ typedef void CAMetalLayer; const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo uint32_t* pNumPasses - + VkResult vkAcquireProfilingLockKHR VkDevice device const VkAcquireProfilingLockInfoKHR* pInfo @@ -8595,7 +8596,7 @@ typedef void CAMetalLayer; void vkReleaseProfilingLockKHR VkDevice device - + VkResult vkGetImageDrmFormatModifierPropertiesEXT VkDevice device VkImage image @@ -8706,7 +8707,7 @@ typedef void CAMetalLayer; uint32_t lineStippleFactor uint16_t lineStipplePattern - + VkResult vkGetPhysicalDeviceToolPropertiesEXT VkPhysicalDevice physicalDevice uint32_t* pToolCount @@ -11411,9 +11412,9 @@ typedef void CAMetalLayer; - + - + @@ -11421,9 +11422,9 @@ typedef void CAMetalLayer; - + - + @@ -13003,7 +13004,7 @@ typedef void CAMetalLayer; - +