diff --git a/ChangeLog.txt b/ChangeLog.txt index 563a69a9e4..c03c5a8c7e 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -8,6 +8,282 @@ public pull requests that have been accepted. ----------------------------------------------------- +Change log for December 16, 2018 Vulkan 1.1.96 spec update: + + * Update release number to 96. + +Public Issues: + + * Fix typo in `vk.xml` for `structextends` attribute of + slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870). + * Fix links in optimized PDF output (public PR 879). + +Internal Issues: + + * Add a link to GitHub contributors in the <> + section (internal issue 808). + * Clarify the behavior of command aliases described in the <> and <> sections and the registry schema document with respect to + whether they are or are not the same entry point, and what the behaviour + of the ftext:vkGet*ProcAddr commands is for each alias (internal issue + 1462). + * Update slink:VkPipelineShaderStageCreateInfo valid usage statements for + writing to code:Layer and code:viewportIndex to apply to any vertex + processing stage (internal issue 1475). + * Make sparse image creation optional for Y'C~B~C~R~ formats in the + <> section + and the <> table (internal issue + 1476). + * Modify the valid usage statement for + flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the + pname:maxTransformFeedbackBufferDataStride limit rather than the + pname:maxVertexInputBindingStride limit, which is a better match for + transform feedback related operations (internal issue 1487). + * Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to + have the `uint32_t` type. This is an imcompatible change to an EXT + that's very recently released; although this is against usual Vulkan WG + policy, we discussed and consider this an acceptable risk, but have + polled the mesa-dev list in case there are use cases we missed (internal + issue 1492). + * Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and + `VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948). + * Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395` + (internal MR 2950). + * Add `check_spec_links.py` script, use it in Gitlab CI, and fix many + minor markup issues discovered by the script (internal MR 2955). + * Update `BUILD.md` to the current Ruby version (2.5.3), and make some + corresponding updates to per-platform build instructions (internal MR + 2956). + * Fix binding numbers and other details in + flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks + (internal MR 2960). + * Remove some nautovalidity="true" in `vk.xml` for NV extensions where + it's clearly wrong (internal MR 2970). + +----------------------------------------------------- + +Change log for December 3, 2018 Vulkan 1.1.95 spec update: + + * Update release number to 95. + +Public Issues: + + * Fix valid usage and XML issues found in public issues 789 and 790 for + the `VK_EXT_debug_utils` extension (public pull request 794). + * Replace references to `VK_NV_dedicated_allocation` with links to the + corresponding slink:slink:VkMemoryDedicatedRequirements and + slink:slink:VkMemoryDedicatedAllocateInfo structures in the description + of elink:VkExternalMemoryFeatureFlagBits (public issue 801). + * Fix miscellaneous minor markup and spelling issues in + `VK_NV_ray_tracing` extension (public pull request 860). + * Remove "returnedonly" from XML for + slink:VkPhysicalDeviceInlineUniformBlockFeaturesEXT and + slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (public issue 862). + +Internal Issues: + + * Add to the description of the + <> feature to state the shared variables + should be packed at least as tightly as std430 (internal issue 1386). + * Fix and clarify various references to image and image view usage in + flink:vkCmdBindShadingRateImageNV, flink:vkCmdBeginRenderPass, and + slink:VkImageStencilUsageCreateInfoEXT (internal issue 1432). + * Require that the slink:VkImage mipmap chain match the Android hardware + buffer mipmap chain for slink:VkMemoryAllocateInfo (internal issue + 1479). + * Fix the definition of slink:VkSwapchainCreateInfoKHR valid usage + statement 01778 (Vulkan-ValidationLayers!15) + * Fix descriptions of <> and <> to code:uvec3. + +New Extensions: + + * `VK_KHR_shader_float16_int8` + * `VK_KHR_shader_float_controls` + +----------------------------------------------------- + +Change log for November 25, 2018 Vulkan 1.1.94 spec update: + + * Update release number to 94. + +Public Issues: + + * Use the terms "`texel block`" and "`texel block size`" instead of "`data + element`" and "`element size`", and define "`element`" as an array slot. + In addition to the terminology changes, retitled the <> section and added texel block size + / no. of texels/block information to the + <> table. There is + some additional work underway to make sure the compatibility language + makes sense for all of uncompressed, compressed, and multiplanar formats + (public issue 763). + * Cleanup `VK_NV_ray_tracing` language (public issues 858, 859). + +Internal Issues: + + * Specify in <> and <> that derivative groups are quads when code:SubgroupSize >= + 4 (internal issue 1390). + * Make the type of slink:VkDescriptorUpdateTemplateCreateInfo::pNext + `const` following pattern for the other stext:Vk*CreateInfo structures + (internal issue 1459). + * Specify that flink:vkCmdClearAttachments executes as a drawing command, + rather than a transfer command (internal issue 1463). + * Update `VK_NV_ray_tracing` to use code:InstanceId instead of + code:InstanceIndex. + +New Extensions: + + * `VK_KHR_swapchain_mutable_format` + * `VK_EXT_fragment_density_map` + +----------------------------------------------------- + +Change log for November 18, 2018 Vulkan 1.1.93 spec update: + + * Update release number to 93. + +Public Issues: + + * Add spec language for ename:VK_INDEX_TYPE_NONE_NV and fix up + slink:VkAccelerationStructureTypeNV (public issue 848). + * Add missing suffix in description of slink:VkSubpassDescription2KHR + parameters (public pull request 851). + * Fix miscellaneous typos (public pull request 855). + * Add driver ID for Pastel (public pull request 856). + * Add missing include directive for slink:VkMemoryWin32HandlePropertiesKHR + implicit valid usage statements (public pull request 857). + +Internal Issues: + + * Restrict the storage classes permitted for SPIR-V atomics to what is + actually supported, in the <> section (internal issue 1123). + * Add a missing Valid Usage statement to slink:VkRenderPassCreateInfo for + the case pname:stencilLoadOp == ename:VK_LOAD_OP_CLEAR, pname:layout == + ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL (internal issue + 1408). + * Modify optimize-pdf script and Makefile to retain non-optimized original + PDF on errors (internal issue 1435). + * Add <> stating that + only the listed code:BuiltIn decorations are permitted, and only when + relevante features and extensions are enabled (internal issue 1449). + * Remove some duplicated Valid Usage IDs created via cut & paste error + (internal issue 1455). + * Build HTML output for extension reference pages (internal issue 1461). + ** Improve genRef.py handling of aliases defined inside other refpages. + ** Emit aliases in pygenerator.py. + ** Add XML noautovalidity flag for VkRenderPassCreateFlags until there + are some corresponding FlagBits defined. + ** Corrected types= attribute on some refpage blocks to 'flags' + ** Added refpage blocks for some missing types detected by CI tests. + * Fixed many Valid Usage statement issues in slink:VkRenderPassCreateInfo, + slink:VkSubpassDescription, slink:VkSubpassDescription2KHR, + slink:VkSubpassDependency2KHR, flink:vkCmdBeginRenderPass, + flink:vkCmdBeginRenderPass2KHR, and slink:VkRenderPassBeginInfo + discovered while adding `VK_KHR_create_renderpass2` to the validation + layers. + +New Extensions: + + * `VK_EXT_scalar_block_layout` + * `VK_EXT_separate_stencil_usage` + +----------------------------------------------------- + +Change log for November 12, 2018 Vulkan 1.1.92 spec update: + + * Update release number to 92. + +Public Issues: + + * Move and modify valid usage statements dealing with pname:aspectMask in + flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and + slink:VkClearAttachment, so they are in places where all necessary + information is available (public issue 529). + * Fix math markup in <> (public pull request 840). + * Fix misspellings (public pull request 845). + +Internal Issues: + + * Add installation instructions and a Makefile "`chunked`" target for + chunked HTML generation (internal issue 1352). + * Fix pipeline mesh diagram style; also fix a minor bug in the classic + pipeline diagram where vertex/index buffers wrongly fed into the vertex + shader (internal issue 1436). + * Make asciidoctor ERROR output raise an error, and don't suppress + executed command output from CI make invocation (internal issue 1454). + * Minor typo fixes and clarifications for `VK_NV_raytracing`. + * Cleanup extension-specific properties + ** Remove duplicated documentation for pname:maxDiscardRectangles, + pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they + shouldn't be documented with the other members of + slink:VkPhysicalDeviceLimits at all). + ** Remove duplicate anchor for pname:maxVertexAttribDivisor + ** Consistently document stext:VkPhysicalDevicePropertiesKHR + *** Always document pname:sType/pname:pNext (was inconsistent before) + *** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not + as slink:VkPhysicalDeviceProperties2KHR) + *** Always include Valid Usage statements last + * Update Makefile 'checklinks' target and associated scripts, and fix + markup problems identified by checkLinks.py, so that we can rely on the + checklinks script as part of Gitlab CI. + +----------------------------------------------------- + +Change log for November 4, 2018 Vulkan 1.1.91 spec update: + + * Update release number to 91. + +Public Issues: + + * Update Ubuntu subsystem build instructions in `BUILD.adoc` (public pull + request 624). + * Delete the `VK_KHR_mir_surface` extension from the Specification and + XML, due to EOL of the only driver known to have supported it, and + near-EOL of Mir itself (public issue 814). + * Fix options for some figures that were using old ones (public pull + request 841). + * Fix various accidentally repeated words (public pull request 843). + * Use `time.process_time()`, introduced in Python 3.3, in the scripts + instead of `time.clock()`, which will be removed in Python 3.8 (public + pull request 844). + +Internal Issues: + + * Update valid usage statements for + `VK_ANDROID_external_memory_android_hardware_buffer` in + slink:VkMemoryAllocateInfo, + slink:VkImportAndroidHardwareBufferInfoANDROID, and + flink:vkGetAndroidHardwareBufferPropertiesANDROID to actually be + verifiable (internal issue 1419). + * Update valid usage statements for + `VK_ANDROID_external_memory_android_hardware_buffer` in + slink:VkMemoryAllocateInfo, slink:VkImageCreateInfo, and + slink:VkImageViewCreateInfo to move valid usage statements in + doubly-nested bullet points up one level, accomodating limitations of + the valid usage extraction script that creates `validusage.json` + (internal issue 1434). + * Fix typo etext:VK_ACCESS_SHADING_RATE_IMAGE_BIT_NV to the correct + ename:VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV. + * Add missing etext:VK_STRUCTURE_TYPE_* tokens to appendices for + extensions missing them. + +New Extensions: + + * `VK_AMD_memory_overallocation_behavior` + * `VK_NV_ray_tracing`, replacing `VK_NVX_raytracing` + +----------------------------------------------------- + Change log for October 28, 2018 Vulkan 1.1.90 spec update: * Update release number to 90. diff --git a/Makefile b/Makefile index 90e48e70d2..ff192e5f94 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Copyright (c) 2014-2018 The Khronos Group Inc. +# Copyright (c) 2014-2019 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. @@ -115,7 +115,7 @@ VERBOSE = # ADOCOPTS options for asciidoc->HTML5 output NOTEOPTS = -a editing-notes -a implementation-guide -PATCHVERSION = 96 +PATCHVERSION = 97 ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS))) SPECREVISION = 1.1.$(PATCHVERSION) else diff --git a/appendices/VK_EXT_astc_decode_mode.txt b/appendices/VK_EXT_astc_decode_mode.txt index e4ee895a9e..0b0233cd0e 100644 --- a/appendices/VK_EXT_astc_decode_mode.txt +++ b/appendices/VK_EXT_astc_decode_mode.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Khronos Group. This work is licensed under a +// Copyright (c) 2018-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -96,7 +96,7 @@ Create an image view that decodes to VK_FORMAT_R8G8B8A8_UNORM precision: // flags, image, viewType set to application-desired values VK_FORMAT_ASTC_8x8_UNORM_BLOCK, // format // components, subresourceRange set to application-desired values - }; + }; VkImageView imageView; VkResult result = vkCreateImageView( diff --git a/appendices/VK_EXT_buffer_device_address.txt b/appendices/VK_EXT_buffer_device_address.txt new file mode 100644 index 0000000000..06b6a56bf9 --- /dev/null +++ b/appendices/VK_EXT_buffer_device_address.txt @@ -0,0 +1,70 @@ +include::meta/VK_EXT_buffer_device_address.txt[] + +*Last Modified Date*:: + 2018-11-01 +*IP Status*:: + No known IP claims. +*Contributors*:: + - Jeff Bolz, NVIDIA + +This extension allows the application to query a 64-bit buffer device +address value for a buffer, which can be used to access the buffer memory +via the code:PhysicalStorageBufferEXT storage class in the +https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_buffer_reference.txt[+GL_EXT_buffer_reference+] +GLSL extension and +http://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_physical_storage_buffer.html[+SPV_EXT_physical_storage_buffer+] +SPIR-V extension. + +It also allows buffer device addresses to be provided by a trace replay +tool, so that it matches the address used when the trace was captured. + +=== New Object Types + +None + +=== New Enum Constants + + * Extending elink:VkStructureType: + ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT + ** ename:VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT + ** ename:VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT + + * Extending elink:VkBufferUsageFlagBits: + ** ename:VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT + + * Extending elink:VkBufferCreateFlagBits: + ** ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT + + * Extending elink:VkResult: + ** ename:VK_ERROR_INVALID_DEVICE_ADDRESS_EXT + +=== New Enums + +None + +=== New Structures + + * slink:VkPhysicalDeviceBufferAddressFeaturesEXT + * slink:VkBufferDeviceAddressInfoEXT + * slink:VkBufferDeviceAddressCreateInfoEXT + +=== New Functions + + * flink:vkGetBufferDeviceAddressEXT + +=== New Built-In Variables + +None + +=== New SPIR-V Capabilities + + * <> + +=== Issues + +None + +=== Version History + + * Revision 1, 2018-11-01 (Jeff Bolz) + - Internal revisions diff --git a/appendices/VK_EXT_hdr_metadata.txt b/appendices/VK_EXT_hdr_metadata.txt index 72a152a22a..59e3e97558 100644 --- a/appendices/VK_EXT_hdr_metadata.txt +++ b/appendices/VK_EXT_hdr_metadata.txt @@ -59,3 +59,6 @@ application can track on its own. * Revision 1, 2016-12-27 (Courtney Goeltzenleuchter) - Initial version + + * Revision 2, 2018-12-19 (Courtney Goeltzenleuchter) + - Correct implicit validity for VkHdrMetadataEXT structure diff --git a/appendices/VK_EXT_image_drm_format_modifier.txt b/appendices/VK_EXT_image_drm_format_modifier.txt index e0927c56c7..43e528f571 100644 --- a/appendices/VK_EXT_image_drm_format_modifier.txt +++ b/appendices/VK_EXT_image_drm_format_modifier.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Khronos Group. This work is licensed under a +// Copyright (c) 2018-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_EXT_memory_budget.txt b/appendices/VK_EXT_memory_budget.txt new file mode 100644 index 0000000000..abf2f71bf6 --- /dev/null +++ b/appendices/VK_EXT_memory_budget.txt @@ -0,0 +1,45 @@ +// Copyright (c) 2018-2019 Khronos Group. This work is licensed under a +// Creative Commons Attribution 4.0 International License; see +// http://creativecommons.org/licenses/by/4.0/ + +include::meta/VK_EXT_memory_budget.txt[] + +Last Modified Date:: + 2018-10-08 +Contributors:: + - Jeff Bolz, NVIDIA + - Jeff Juliano, NVIDIA + +This extension adds support for querying the amount of memory used and the +total memory budget for a memory heap. +The values returned by this query are implementation-dependent and can +depend on a variety of factors including operating system and system load. + +The pname:heapBudget values can be used as a guideline for how much total +memory from each heap the process can use at any given time, before +allocations may start failing or causing performance degradation. +The values may change based on other activity in the system that is outside +the scope and control of the Vulkan implementation. + +=== New Enum Constants + + * Extending elink:VkStructureType: + ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT + +=== New Enums + +None. + +=== New Structures + + * slink:VkPhysicalDeviceMemoryBudgetPropertiesEXT + +=== New Functions + +None. + +=== Version History + + * Revision 1, 2018-10-08 (Jeff Bolz) + - Initial revision + diff --git a/appendices/VK_EXT_memory_priority.txt b/appendices/VK_EXT_memory_priority.txt new file mode 100644 index 0000000000..1ac832a16c --- /dev/null +++ b/appendices/VK_EXT_memory_priority.txt @@ -0,0 +1,45 @@ +// Copyright (c) 2018-2019 Khronos Group. This work is licensed under a +// Creative Commons Attribution 4.0 International License; see +// http://creativecommons.org/licenses/by/4.0/ + +include::meta/VK_EXT_memory_priority.txt[] + +Last Modified Date:: + 2018-10-08 +Contributors:: + - Jeff Bolz, NVIDIA + - Jeff Juliano, NVIDIA + +This extension adds a pname:priority value specified at memory allocation +time. +On some systems with both device-local and non-device-local memory heaps, +the implementation may transparently move memory from one heap to another +when a heap becomes full (for example, when the total memory used across all +processes exceeds the size of the heap). +In such a case, this priority value may be used to determine which +allocations are more likely to remain in device-local memory. + +=== New Enum Constants + + * Extending elink:VkStructureType: + ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT + ** ename:VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT + +=== New Enums + +None. + +=== New Structures + + * slink:VkPhysicalDeviceMemoryPriorityFeaturesEXT + * slink:VkMemoryPriorityAllocateInfoEXT + +=== New Functions + +None. + +=== Version History + + * Revision 1, 2018-10-08 (Jeff Bolz) + - Initial revision + diff --git a/appendices/VK_EXT_scalar_block_layout.txt b/appendices/VK_EXT_scalar_block_layout.txt index 66f6e86df1..6b4ec88838 100644 --- a/appendices/VK_EXT_scalar_block_layout.txt +++ b/appendices/VK_EXT_scalar_block_layout.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_EXT_validation_features.txt b/appendices/VK_EXT_validation_features.txt new file mode 100644 index 0000000000..1c6c599b39 --- /dev/null +++ b/appendices/VK_EXT_validation_features.txt @@ -0,0 +1,55 @@ +include::meta/VK_EXT_validation_features.txt[] + +*Last Modified Date*:: + 2018-11-14 +*IP Status*:: + No known IP claims. +*Contributors*:: + - Karl Schultz, LunarG + - Dave Houlton, LunarG + - Mark Lobodzinski, LunarG + +This extension provides the slink:VkValidationFeaturesEXT struct that can be +included in the pname:pNext chain of the slink:VkInstanceCreateInfo +structure passed as the pname:pCreateInfo parameter of +flink:vkCreateInstance. +The structure contains an array of elink:VkValidationFeatureEnableEXT enum +values that enable specific validation features that are disabled by +default. +The structure also contains an array of elink:VkValidationFeatureDisableEXT +enum values that disable specific validation layer features that are enabled +by default. + +[NOTE] +.Note +==== +The `<>` extension subsumes all the +functionality provided in the `<>` extension. +==== + +=== New Enum Constants + + * Extending elink:VkStructureType: + ** ename:VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT + +=== New Enums + + * elink:VkValidationFeatureEnableEXT + * elink:VkValidationFeatureDisableEXT + +=== New Structures + + * slink:VkValidationFeaturesEXT + +=== New Functions + +None. + +=== Issues + +None. + +=== Version History + + * Revision 1, 2018-11-14 (Karl Schultz) + - Initial revision diff --git a/appendices/VK_FUCHSIA_imagepipe_surface.txt b/appendices/VK_FUCHSIA_imagepipe_surface.txt index 63b92d38a7..0763750c6b 100644 --- a/appendices/VK_FUCHSIA_imagepipe_surface.txt +++ b/appendices/VK_FUCHSIA_imagepipe_surface.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_GOOGLE_display_timing.txt b/appendices/VK_GOOGLE_display_timing.txt index 611d323250..55a8fe7366 100644 --- a/appendices/VK_GOOGLE_display_timing.txt +++ b/appendices/VK_GOOGLE_display_timing.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_16bit_storage.txt b/appendices/VK_KHR_16bit_storage.txt index d7d2e11a4c..c9af336279 100644 --- a/appendices/VK_KHR_16bit_storage.txt +++ b/appendices/VK_KHR_16bit_storage.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_8bit_storage.txt b/appendices/VK_KHR_8bit_storage.txt index fb3cdf1d94..eef7b970ef 100644 --- a/appendices/VK_KHR_8bit_storage.txt +++ b/appendices/VK_KHR_8bit_storage.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_android_surface.txt b/appendices/VK_KHR_android_surface.txt index b76f9c696b..9096fdc452 100644 --- a/appendices/VK_KHR_android_surface.txt +++ b/appendices/VK_KHR_android_surface.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_bind_memory2.txt b/appendices/VK_KHR_bind_memory2.txt index 00d633dfa8..e75c3c68c7 100644 --- a/appendices/VK_KHR_bind_memory2.txt +++ b/appendices/VK_KHR_bind_memory2.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_dedicated_allocation.txt b/appendices/VK_KHR_dedicated_allocation.txt index 346bdc510d..0e91ede821 100644 --- a/appendices/VK_KHR_dedicated_allocation.txt +++ b/appendices/VK_KHR_dedicated_allocation.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_depth_stencil_resolve.txt b/appendices/VK_KHR_depth_stencil_resolve.txt new file mode 100644 index 0000000000..84abd69723 --- /dev/null +++ b/appendices/VK_KHR_depth_stencil_resolve.txt @@ -0,0 +1,44 @@ +// Copyright (c) 2018-2019 Khronos Group. This work is licensed under a +// Creative Commons Attribution 4.0 International License; see +// http://creativecommons.org/licenses/by/4.0/ + +include::meta/VK_KHR_depth_stencil_resolve.txt[] + +Last Modified Date:: + 2018-04-09 +Contributors:: + - Jan-Harald Fredriksen, Arm + - Andrew Garrard, Samsung Electronics + - Soowan Park, Samsung Electronics + - Jeff Bolz, NVIDIA + - Daniel Rakos, AMD + +This extension adds support for automatically resolving multisampled +depth/stencil attachments in a subpass in a similar manner as for color +attachments. + + +=== New Enum Constants + + * Extending elink:VkStructureType: + ** ename:VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR + ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR + +=== New Enums + + * elink:VkResolveModeFlagBitsKHR + +=== New Structures + + * slink:VkPhysicalDeviceDepthStencilResolvePropertiesKHR + * slink:VkSubpassDescriptionDepthStencilResolveKHR + +=== New Functions + +None. + +=== Version History + + * Revision 1, 2018-04-09 (Jan-Harald Fredriksen) + - Initial revision + diff --git a/appendices/VK_KHR_descriptor_update_template.txt b/appendices/VK_KHR_descriptor_update_template.txt index ce3219a772..a54dbd313e 100644 --- a/appendices/VK_KHR_descriptor_update_template.txt +++ b/appendices/VK_KHR_descriptor_update_template.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_device_group.txt b/appendices/VK_KHR_device_group.txt index 140677cb27..e46eba11e7 100644 --- a/appendices/VK_KHR_device_group.txt +++ b/appendices/VK_KHR_device_group.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_device_group_creation.txt b/appendices/VK_KHR_device_group_creation.txt index 7e973fb5a6..e8cf0cfac2 100644 --- a/appendices/VK_KHR_device_group_creation.txt +++ b/appendices/VK_KHR_device_group_creation.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_display.txt b/appendices/VK_KHR_display.txt index 1007684b68..a0609f398d 100644 --- a/appendices/VK_KHR_display.txt +++ b/appendices/VK_KHR_display.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_display_swapchain.txt b/appendices/VK_KHR_display_swapchain.txt index 540c8a9eae..94779f9c82 100644 --- a/appendices/VK_KHR_display_swapchain.txt +++ b/appendices/VK_KHR_display_swapchain.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_driver_properties.txt b/appendices/VK_KHR_driver_properties.txt index a433d9d294..c456ab24cc 100644 --- a/appendices/VK_KHR_driver_properties.txt +++ b/appendices/VK_KHR_driver_properties.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_fence.txt b/appendices/VK_KHR_external_fence.txt index a63d19ebe2..a1ecf2f123 100644 --- a/appendices/VK_KHR_external_fence.txt +++ b/appendices/VK_KHR_external_fence.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_fence_capabilities.txt b/appendices/VK_KHR_external_fence_capabilities.txt index 1c473d2a24..99df48902f 100644 --- a/appendices/VK_KHR_external_fence_capabilities.txt +++ b/appendices/VK_KHR_external_fence_capabilities.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_fence_fd.txt b/appendices/VK_KHR_external_fence_fd.txt index 3ef60c9877..0cf41abecd 100644 --- a/appendices/VK_KHR_external_fence_fd.txt +++ b/appendices/VK_KHR_external_fence_fd.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_fence_win32.txt b/appendices/VK_KHR_external_fence_win32.txt index 1c15b7f65f..e333ce9191 100644 --- a/appendices/VK_KHR_external_fence_win32.txt +++ b/appendices/VK_KHR_external_fence_win32.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_memory.txt b/appendices/VK_KHR_external_memory.txt index 7273812cb6..6b0ec9310b 100644 --- a/appendices/VK_KHR_external_memory.txt +++ b/appendices/VK_KHR_external_memory.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_memory_capabilities.txt b/appendices/VK_KHR_external_memory_capabilities.txt index a1de0f8388..64be592dc8 100644 --- a/appendices/VK_KHR_external_memory_capabilities.txt +++ b/appendices/VK_KHR_external_memory_capabilities.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_memory_fd.txt b/appendices/VK_KHR_external_memory_fd.txt index 38136f4ded..9f5d181413 100644 --- a/appendices/VK_KHR_external_memory_fd.txt +++ b/appendices/VK_KHR_external_memory_fd.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_memory_win32.txt b/appendices/VK_KHR_external_memory_win32.txt index b744945aea..942fd73d16 100644 --- a/appendices/VK_KHR_external_memory_win32.txt +++ b/appendices/VK_KHR_external_memory_win32.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_semaphore.txt b/appendices/VK_KHR_external_semaphore.txt index e7ee60c998..2e3694a8f7 100644 --- a/appendices/VK_KHR_external_semaphore.txt +++ b/appendices/VK_KHR_external_semaphore.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_semaphore_capabilities.txt b/appendices/VK_KHR_external_semaphore_capabilities.txt index 2c8969b8ed..cdefaf5de4 100644 --- a/appendices/VK_KHR_external_semaphore_capabilities.txt +++ b/appendices/VK_KHR_external_semaphore_capabilities.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_semaphore_fd.txt b/appendices/VK_KHR_external_semaphore_fd.txt index bca42db341..741f84627c 100644 --- a/appendices/VK_KHR_external_semaphore_fd.txt +++ b/appendices/VK_KHR_external_semaphore_fd.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_external_semaphore_win32.txt b/appendices/VK_KHR_external_semaphore_win32.txt index 12783e06e8..57eb2ee11f 100644 --- a/appendices/VK_KHR_external_semaphore_win32.txt +++ b/appendices/VK_KHR_external_semaphore_win32.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_get_display_properties2.txt b/appendices/VK_KHR_get_display_properties2.txt index ddabc2f0a0..460e8ee76a 100644 --- a/appendices/VK_KHR_get_display_properties2.txt +++ b/appendices/VK_KHR_get_display_properties2.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_get_memory_requirements2.txt b/appendices/VK_KHR_get_memory_requirements2.txt index b6ee8fab05..a18ccfb46c 100644 --- a/appendices/VK_KHR_get_memory_requirements2.txt +++ b/appendices/VK_KHR_get_memory_requirements2.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_get_physical_device_properties2.txt b/appendices/VK_KHR_get_physical_device_properties2.txt index c27aee47a5..f6f72373f4 100644 --- a/appendices/VK_KHR_get_physical_device_properties2.txt +++ b/appendices/VK_KHR_get_physical_device_properties2.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_get_surface_capabilities2.txt b/appendices/VK_KHR_get_surface_capabilities2.txt index 1ef54ef5fa..56767758ad 100644 --- a/appendices/VK_KHR_get_surface_capabilities2.txt +++ b/appendices/VK_KHR_get_surface_capabilities2.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_incremental_present.txt b/appendices/VK_KHR_incremental_present.txt index 4a35c3b3c9..3af2195bd7 100644 --- a/appendices/VK_KHR_incremental_present.txt +++ b/appendices/VK_KHR_incremental_present.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_maintenance1.txt b/appendices/VK_KHR_maintenance1.txt index 4c820fcb2f..12c01d9957 100644 --- a/appendices/VK_KHR_maintenance1.txt +++ b/appendices/VK_KHR_maintenance1.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_maintenance2.txt b/appendices/VK_KHR_maintenance2.txt index 9b7ec71cc2..19acf06ba6 100644 --- a/appendices/VK_KHR_maintenance2.txt +++ b/appendices/VK_KHR_maintenance2.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_maintenance3.txt b/appendices/VK_KHR_maintenance3.txt index fec8b46c46..bb2733164a 100644 --- a/appendices/VK_KHR_maintenance3.txt +++ b/appendices/VK_KHR_maintenance3.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_multiview.txt b/appendices/VK_KHR_multiview.txt index d6415ffe68..04403f5f2d 100644 --- a/appendices/VK_KHR_multiview.txt +++ b/appendices/VK_KHR_multiview.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_push_descriptor.txt b/appendices/VK_KHR_push_descriptor.txt index b38c634cfc..c07b110b83 100644 --- a/appendices/VK_KHR_push_descriptor.txt +++ b/appendices/VK_KHR_push_descriptor.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_relaxed_block_layout.txt b/appendices/VK_KHR_relaxed_block_layout.txt index 7959e05706..960876ebda 100644 --- a/appendices/VK_KHR_relaxed_block_layout.txt +++ b/appendices/VK_KHR_relaxed_block_layout.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt b/appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt index e643b2f2a7..a5574176ae 100644 --- a/appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt +++ b/appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_sampler_ycbcr_conversion.txt b/appendices/VK_KHR_sampler_ycbcr_conversion.txt index c5b2ebb7bf..dea74a5944 100644 --- a/appendices/VK_KHR_sampler_ycbcr_conversion.txt +++ b/appendices/VK_KHR_sampler_ycbcr_conversion.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_shader_atomic_int64.txt b/appendices/VK_KHR_shader_atomic_int64.txt index d999c1689f..678eb0b35a 100644 --- a/appendices/VK_KHR_shader_atomic_int64.txt +++ b/appendices/VK_KHR_shader_atomic_int64.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_shader_draw_parameters.txt b/appendices/VK_KHR_shader_draw_parameters.txt index 660bbc5490..acad3d0b2b 100644 --- a/appendices/VK_KHR_shader_draw_parameters.txt +++ b/appendices/VK_KHR_shader_draw_parameters.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_shader_float16_int8.txt b/appendices/VK_KHR_shader_float16_int8.txt index d0c5a87031..d7621aaba1 100644 --- a/appendices/VK_KHR_shader_float16_int8.txt +++ b/appendices/VK_KHR_shader_float16_int8.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_shader_float_controls.txt b/appendices/VK_KHR_shader_float_controls.txt index 1962f943e8..2912a63d00 100644 --- a/appendices/VK_KHR_shader_float_controls.txt +++ b/appendices/VK_KHR_shader_float_controls.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_shared_presentable_image.txt b/appendices/VK_KHR_shared_presentable_image.txt index c1b504dc5b..2cbb1e61a6 100644 --- a/appendices/VK_KHR_shared_presentable_image.txt +++ b/appendices/VK_KHR_shared_presentable_image.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_storage_buffer_storage_class.txt b/appendices/VK_KHR_storage_buffer_storage_class.txt index 06a24a54c9..3d76e9c831 100644 --- a/appendices/VK_KHR_storage_buffer_storage_class.txt +++ b/appendices/VK_KHR_storage_buffer_storage_class.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_surface.txt b/appendices/VK_KHR_surface.txt index a17e87f69a..ebb0abf40d 100644 --- a/appendices/VK_KHR_surface.txt +++ b/appendices/VK_KHR_surface.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_swapchain.txt b/appendices/VK_KHR_swapchain.txt index 84d2fe1a9e..6514ee662e 100644 --- a/appendices/VK_KHR_swapchain.txt +++ b/appendices/VK_KHR_swapchain.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_swapchain_mutable_format.txt b/appendices/VK_KHR_swapchain_mutable_format.txt index 2df927630b..f968e0e7a6 100644 --- a/appendices/VK_KHR_swapchain_mutable_format.txt +++ b/appendices/VK_KHR_swapchain_mutable_format.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_variable_pointers.txt b/appendices/VK_KHR_variable_pointers.txt index 7e92979182..85b5f32d99 100644 --- a/appendices/VK_KHR_variable_pointers.txt +++ b/appendices/VK_KHR_variable_pointers.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_vulkan_memory_model.txt b/appendices/VK_KHR_vulkan_memory_model.txt index 456f4e070a..cba861f719 100644 --- a/appendices/VK_KHR_vulkan_memory_model.txt +++ b/appendices/VK_KHR_vulkan_memory_model.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_wayland_surface.txt b/appendices/VK_KHR_wayland_surface.txt index 0478afb3a4..2b0eeb7260 100644 --- a/appendices/VK_KHR_wayland_surface.txt +++ b/appendices/VK_KHR_wayland_surface.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_win32_keyed_mutex.txt b/appendices/VK_KHR_win32_keyed_mutex.txt index 6e197e000e..efc57fe287 100644 --- a/appendices/VK_KHR_win32_keyed_mutex.txt +++ b/appendices/VK_KHR_win32_keyed_mutex.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_win32_surface.txt b/appendices/VK_KHR_win32_surface.txt index 1be0f4affd..d98b52bd43 100644 --- a/appendices/VK_KHR_win32_surface.txt +++ b/appendices/VK_KHR_win32_surface.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_xcb_surface.txt b/appendices/VK_KHR_xcb_surface.txt index 334ad0d21c..da74f434a3 100644 --- a/appendices/VK_KHR_xcb_surface.txt +++ b/appendices/VK_KHR_xcb_surface.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/VK_KHR_xlib_surface.txt b/appendices/VK_KHR_xlib_surface.txt index 3e2f0ebe36..8a16f573a6 100644 --- a/appendices/VK_KHR_xlib_surface.txt +++ b/appendices/VK_KHR_xlib_surface.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/boilerplate.txt b/appendices/boilerplate.txt index 16c40ee401..6cea40f917 100644 --- a/appendices/boilerplate.txt +++ b/appendices/boilerplate.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/compressedtex.txt b/appendices/compressedtex.txt index 64300e5bb0..0c17954c35 100644 --- a/appendices/compressedtex.txt +++ b/appendices/compressedtex.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/credits.txt b/appendices/credits.txt index 39d79507df..1d88b85099 100644 --- a/appendices/credits.txt +++ b/appendices/credits.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/extensions.txt b/appendices/extensions.txt index 2dfacc6696..d4cb38f397 100644 --- a/appendices/extensions.txt +++ b/appendices/extensions.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/glossary.txt b/appendices/glossary.txt index 7fa0b50c54..fe9ef12670 100644 --- a/appendices/glossary.txt +++ b/appendices/glossary.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -133,6 +133,12 @@ Buffer:: A resource that represents a linear array of data in device memory. Represented by a slink:VkBuffer object. +ifdef::VK_EXT_buffer_device_address[] +Buffer Device Address:: + A 64-bit value used in a shader to access buffer memory through the + code:PhysicalStorageBufferEXT storage class. +endif::VK_EXT_buffer_device_address[] + Buffer View:: An object that represents a range of a specific buffer, and state that controls how the contents are interpreted. @@ -278,6 +284,13 @@ Depth/Stencil Format:: Depth/Stencil Image (or ImageView):: A slink:VkImage (or slink:VkImageView) with a depth/stencil format. +ifdef::VK_KHR_depth_stencil_resolve[] +Depth/Stencil Resolve Attachment:: + A subpass attachment point, or image view, that is the target of a + multisample resolve operation from the corresponding depth/stencil + attachment at the end of the subpass. +endif::VK_KHR_depth_stencil_resolve[] + Derivative Group:: A set of fragment ifdef::VK_NV_compute_shader_derivatives[] @@ -1395,8 +1408,11 @@ Subpass Dependency:: Subpass Description:: Lists of attachment indices for input attachments, color attachments, - depth/stencil attachment, resolve attachments, and preserve attachments - used by the subpass in a render pass. + depth/stencil attachment, resolve attachments, +ifdef::VK_KHR_depth_stencil_resolve[] + depth/stencil resolve, +endif::VK_KHR_depth_stencil_resolve[] + and preserve attachments used by the subpass in a render pass. Subset (Self-Dependency):: A subset of a self-dependency is a pipeline barrier performed during the diff --git a/appendices/invariance.txt b/appendices/invariance.txt index 3dd126224d..037f9e70ad 100644 --- a/appendices/invariance.txt +++ b/appendices/invariance.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/appendices/memorymodel.txt b/appendices/memorymodel.txt index 77bff8c2de..ee7ecf400f 100644 --- a/appendices/memorymodel.txt +++ b/appendices/memorymodel.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -78,7 +78,13 @@ On the device, a reference is: Uniform, or StorageBuffer storage classes. If the variable is an array (or array of arrays, etc.) then each element of the array may: be a unique reference. - * The variable itself for variables in other storage classes. +ifdef::VK_EXT_buffer_device_address[] + * The address range for a buffer in code:PhysicalStorageBufferEXT storage + class, where the base of the address range is queried with + flink:vkGetBufferDeviceAddressEXT and the length of the range is the + size of the buffer. +endif::VK_EXT_buffer_device_address[] + * The variable itself for variables in other storage classes. Two memory accesses through distinct references may: require availability and visibility operations as defined @@ -249,7 +255,11 @@ Semantics in synchronization operations can include a combination of storage classes. The UniformMemory storage class semantic applies to accesses to memory in -the Uniform and StorageBuffer storage classes. +the +ifdef::VK_EXT_buffer_device_address[] +PhysicalStorageBufferEXT, +endif::VK_EXT_buffer_device_address[] +Uniform and StorageBuffer storage classes. The WorkgroupMemory storage class semantic applies to accesses to memory in the Workgroup storage class. The ImageMemory storage class semantic applies to accesses to memory in the diff --git a/appendices/spirvenv.txt b/appendices/spirvenv.txt index 506c8cc061..f6fcdf0aae 100644 --- a/appendices/spirvenv.txt +++ b/appendices/spirvenv.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -266,6 +266,10 @@ ifdef::VK_EXT_fragment_density_map[] [[spirvenv-capabilities-table-fragmentdensity]] | code:FragmentDensityEXT | <> endif::VK_EXT_fragment_density_map[] +ifdef::VK_EXT_buffer_device_address[] +[[spirvenv-capabilities-table-physicalstoragebufferaddresses]] +| code:PhysicalStorageBufferAddressesEXT | <> +endif::VK_EXT_buffer_device_address[] |==== ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[] @@ -454,6 +458,11 @@ The application can: pass a SPIR-V module to flink:vkCreateShaderModule that uses the `SPV_EXT_fragment_invocation_density` SPIR-V extension. endif::VK_EXT_fragment_density_map[] +ifdef::VK_EXT_buffer_device_address[] +The application can: pass a SPIR-V module to flink:vkCreateShaderModule that +uses the `SPV_EXT_physical_storage_buffer` SPIR-V extension. +endif::VK_EXT_buffer_device_address[] + The application must: not pass a SPIR-V module containing any of the following to flink:vkCreateShaderModule: @@ -525,6 +534,9 @@ ifdef::VK_NV_ray_tracing[] ** *IncomingCallableDataNV* ** *ShaderRecordBufferNV* endif::VK_NV_ray_tracing[] +ifdef::VK_EXT_buffer_device_address[] + ** *PhysicalStorageBufferEXT* +endif::VK_EXT_buffer_device_address[] * Memory semantics must: obey the following rules: ** *Acquire* must: not be used with code:OpAtomicStore. ** *Release* must: not be used with code:OpAtomicLoad. @@ -642,6 +654,10 @@ ifdef::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[] that is in the code:StorageBuffer storage class decorated as code:Block, or endif::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[] +ifdef::VK_EXT_buffer_device_address[] + that is in the code:PhysicalStorageBufferEXT storage class decorated as + code:Block, or +endif::VK_EXT_buffer_device_address[] that is in the code:Uniform storage class decorated as code:BufferBlock. ifdef::VK_EXT_descriptor_indexing[] @@ -677,13 +693,6 @@ ifdef::VK_VERSION_1_1[] 32-bit float, 32-bit integer, boolean, or vectors of these types. If the code:Float64 capability is enabled, double and vectors of double types are also permitted. - * "`Mask`" for code:OpGroupNonUniformShuffleXor must: be a specialization - constant or a constant, or if the dynamic instance is called within a - loop construct it must: be one of: - . A specialization constant. - . A constant. - . An arithmetic operation whose operands are 1., 2., or 4. - . A phi node whose operands are 1., 2., or 3. * If code:OpGroupNonUniformBallotBitCount is used, the group operation must: be one of: ** *Reduce* @@ -863,6 +872,29 @@ ifdef::VK_NV_ray_tracing[] * code:IncomingCallableDataNV storage class must only be used in callable shaders. endif::VK_NV_ray_tracing[] +ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers,VK_EXT_buffer_device_address[] + * The code:Base operand of code:OpPtrAccessChain must: point to one of the + following storage classes: +ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[] + ** *Workgroup*, if code:VariablePointers is enabled. + ** *StorageBuffer*, if code:VariablePointers or + code:VariablePointersStorageBuffer is enabled. +endif::VK_VERSION_1_1,VK_KHR_variable_pointers[] + ** *PhysicalStorageBufferEXT*, if the code:PhysicalStorageBuffer64EXT + addressing model is enabled. +endif::VK_VERSION_1_1,VK_KHR_variable_pointers,VK_EXT_buffer_device_address[] +ifdef::VK_EXT_buffer_device_address[] + * If the code:PhysicalStorageBuffer64EXT addressing model is enabled: + ** Any load or store through a physical pointer type must: be aligned to a + multiple of the size of the largest scalar type in the pointed-to type. + ** All instructions that support memory access operands and that use a + physical pointer must: include the code:Aligned operand. + ** The pointer value of a memory access instruction must be at least as + aligned as specified by the code:Aligned memory access operand. + ** Any access chain instruction that accesses into a code:RowMajor matrix + must: only be used as the code:Pointer operand to code:OpLoad or + code:OpStore. +endif::VK_EXT_buffer_device_address[] [[spirvenv-precision-operation]] diff --git a/appendices/versions.txt b/appendices/versions.txt index 671f2bbf32..da5bd8ac36 100644 --- a/appendices/versions.txt +++ b/appendices/versions.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_EXT_hdr_metadata.txt b/chapters/VK_EXT_hdr_metadata.txt index b33afc5688..ee406cc42a 100644 --- a/chapters/VK_EXT_hdr_metadata.txt +++ b/chapters/VK_EXT_hdr_metadata.txt @@ -63,11 +63,12 @@ include::../api/structs/VkHdrMetadataEXT.txt[] * pname:maxFrameAverageLightLevel is the maximum frame average light level in nits +include::../validity/structs/VkHdrMetadataEXT.txt[] + [NOTE] .Note ==== -The validity and use of this data is outside the scope of Vulkan and thus no -+Valid Usage+ is given. +The validity and use of this data is outside the scope of Vulkan. ==== -- diff --git a/chapters/VK_EXT_validation_features.txt b/chapters/VK_EXT_validation_features.txt new file mode 100644 index 0000000000..cd4f730fe1 --- /dev/null +++ b/chapters/VK_EXT_validation_features.txt @@ -0,0 +1,104 @@ +[open,refpage='VkValidationFeaturesEXT',desc='Specify validation features to enable or disable for a Vulkan instance',type='structs'] +-- + +When creating a Vulkan instance for which you wish to enable or disable +specific validation features, add a slink:VkValidationFeaturesEXT structure +to the pname:pNext chain of the slink:VkInstanceCreateInfo structure, +specifying the features to be enabled or disabled. + +include::../api/structs/VkValidationFeaturesEXT.txt[] + + * pname:sType is the type of this structure. + * pname:pNext is `NULL` or a pointer to an extension-specific structure. + * pname:enabledValidationFeatureCount is the number of features to enable. + * pname:pEnabledValidationFeatures is a pointer to an array of + elink:VkValidationFeatureEnableEXT values specifying the validation + features to be enabled. + * pname:disabledValidationFeatureCount is the number of features to + disable. + * pname:pDisabledValidationFeatures is a pointer to an array of + elink:VkValidationFeatureDisableEXT values specifying the validation + features to be disabled. + +include::../validity/structs/VkValidationFeaturesEXT.txt[] +-- + +[open,refpage='VkValidationFeatureEnableEXT',desc='Specify validation features to enable',type='enums'] +-- + +Possible values of elements of the +slink:VkValidationFeaturesEXT::pname:pEnabledValidationFeatures array, +specifying validation features to be enabled, are: + +include::../api/enums/VkValidationFeatureEnableEXT.txt[] + + * ename:VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT specifies that + GPU-assisted validation is enabled. + Activating this feature instruments shader programs to generate + additional diagnostic data. + This feature is disabled by default. + * ename:VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT + specifies that the validation layers reserve a descriptor set binding + slot for their own use. + The layer reports a value for + slink:VkPhysicalDeviceLimits::pname:maxBoundDescriptorSets that is one + less than the value reported by the device. + If the device supports the binding of only one descriptor set, the + validation layer does not perform GPU-assisted validation. + This feature is disabled by default. + The GPU-assisted validation feature must be enabled in order to use this + feature. + +-- + +[open,refpage='VkValidationFeatureDisableEXT',desc='Specify validation features to disable',type='enums'] +-- + +Possible values of elements of the +slink:VkValidationFeaturesEXT::pname:pDisabledValidationFeatures array, +specifying validation features to be disabled, are: + +include::../api/enums/VkValidationFeatureDisableEXT.txt[] + + * ename:VK_VALIDATION_FEATURE_DISABLE_ALL_EXT specifies that all + validation checks are disabled. + * ename:VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT specifies that shader + validation is disabled. + This feature is enabled by default. + * ename:VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT specifies that + thread safety validation is disabled. + This feature is enabled by default. + * ename:VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT specifies that + stateless parameter validation is disabled. + This feature is enabled by default. + * ename:VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT specifies that + object lifetime validation is disabled. + This feature is enabled by default. + * ename:VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT specifies that core + validation checks are disabled. + This feature is enabled by default. + If this feature is disabled, the shader validation and GPU-assisted + validation features are also disabled. + * ename:VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT specifies that + protection against duplicate non-dispatchable object handles is + disabled. + This feature is enabled by default. + +-- + +[NOTE] +.Note +==== +Disabling checks such as parameter validation and object lifetime validation +prevents the reporting of error conditions that can cause other validation +checks to behave incorrectly or crash. +Some validation checks assume that their inputs are already valid and do not +always revalidate them. +==== + +[NOTE] +.Note +==== +The `<>` extension subsumes all the +functionality provided in the `<>` extension. +==== diff --git a/chapters/VK_FUCHSIA_imagepipe_surface/platformCreateSurface_imagepipe.txt b/chapters/VK_FUCHSIA_imagepipe_surface/platformCreateSurface_imagepipe.txt index c39ce1cf7b..d526682d8d 100644 --- a/chapters/VK_FUCHSIA_imagepipe_surface/platformCreateSurface_imagepipe.txt +++ b/chapters/VK_FUCHSIA_imagepipe_surface/platformCreateSurface_imagepipe.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_FUCHSIA_imagepipe_surface/platformQuerySupport_imagepipe.txt b/chapters/VK_FUCHSIA_imagepipe_surface/platformQuerySupport_imagepipe.txt index c7bfda550f..359f5f41a3 100644 --- a/chapters/VK_FUCHSIA_imagepipe_surface/platformQuerySupport_imagepipe.txt +++ b/chapters/VK_FUCHSIA_imagepipe_surface/platformQuerySupport_imagepipe.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_android_surface/platformCreateSurface_android.txt b/chapters/VK_KHR_android_surface/platformCreateSurface_android.txt index a94424b717..14fea16b5a 100644 --- a/chapters/VK_KHR_android_surface/platformCreateSurface_android.txt +++ b/chapters/VK_KHR_android_surface/platformCreateSurface_android.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_display/display.txt b/chapters/VK_KHR_display/display.txt index e4d521744c..11c020c758 100644 --- a/chapters/VK_KHR_display/display.txt +++ b/chapters/VK_KHR_display/display.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_display_swapchain/create_shared_swapchains.txt b/chapters/VK_KHR_display_swapchain/create_shared_swapchains.txt index 730f156668..118e273134 100644 --- a/chapters/VK_KHR_display_swapchain/create_shared_swapchains.txt +++ b/chapters/VK_KHR_display_swapchain/create_shared_swapchains.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_display_swapchain/display_swapchain_present.txt b/chapters/VK_KHR_display_swapchain/display_swapchain_present.txt index 51bb145b25..a493a3bb57 100644 --- a/chapters/VK_KHR_display_swapchain/display_swapchain_present.txt +++ b/chapters/VK_KHR_display_swapchain/display_swapchain_present.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_incremental_present/wsi.txt b/chapters/VK_KHR_incremental_present/wsi.txt index 42be3a9d37..50d8f6ea55 100644 --- a/chapters/VK_KHR_incremental_present/wsi.txt +++ b/chapters/VK_KHR_incremental_present/wsi.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_shared_presentable_image/wsi.txt b/chapters/VK_KHR_shared_presentable_image/wsi.txt index faace9169d..4e0d688dee 100644 --- a/chapters/VK_KHR_shared_presentable_image/wsi.txt +++ b/chapters/VK_KHR_shared_presentable_image/wsi.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_surface/wsi.txt b/chapters/VK_KHR_surface/wsi.txt index 0e33207904..7f5f6c56b0 100644 --- a/chapters/VK_KHR_surface/wsi.txt +++ b/chapters/VK_KHR_surface/wsi.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_swapchain/wsi.txt b/chapters/VK_KHR_swapchain/wsi.txt index e26fddd09c..5aa576e08c 100644 --- a/chapters/VK_KHR_swapchain/wsi.txt +++ b/chapters/VK_KHR_swapchain/wsi.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_wayland_surface/platformCreateSurface_wayland.txt b/chapters/VK_KHR_wayland_surface/platformCreateSurface_wayland.txt index c6b86ad0e5..7c5d04c5df 100644 --- a/chapters/VK_KHR_wayland_surface/platformCreateSurface_wayland.txt +++ b/chapters/VK_KHR_wayland_surface/platformCreateSurface_wayland.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_wayland_surface/platformQuerySupport_wayland.txt b/chapters/VK_KHR_wayland_surface/platformQuerySupport_wayland.txt index acdd634a1a..fceb336f70 100644 --- a/chapters/VK_KHR_wayland_surface/platformQuerySupport_wayland.txt +++ b/chapters/VK_KHR_wayland_surface/platformQuerySupport_wayland.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_win32_surface/platformCreateSurface_win32.txt b/chapters/VK_KHR_win32_surface/platformCreateSurface_win32.txt index c6109fb8ee..8a66dc1896 100644 --- a/chapters/VK_KHR_win32_surface/platformCreateSurface_win32.txt +++ b/chapters/VK_KHR_win32_surface/platformCreateSurface_win32.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_win32_surface/platformQuerySupport_win32.txt b/chapters/VK_KHR_win32_surface/platformQuerySupport_win32.txt index 8fa255f6cb..458d0a4246 100644 --- a/chapters/VK_KHR_win32_surface/platformQuerySupport_win32.txt +++ b/chapters/VK_KHR_win32_surface/platformQuerySupport_win32.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_xcb_surface/platformCreateSurface_xcb.txt b/chapters/VK_KHR_xcb_surface/platformCreateSurface_xcb.txt index 333dfdaa03..238173c1c6 100644 --- a/chapters/VK_KHR_xcb_surface/platformCreateSurface_xcb.txt +++ b/chapters/VK_KHR_xcb_surface/platformCreateSurface_xcb.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_xcb_surface/platformQuerySupport_xcb.txt b/chapters/VK_KHR_xcb_surface/platformQuerySupport_xcb.txt index 88159037c0..b62ba2b3ae 100644 --- a/chapters/VK_KHR_xcb_surface/platformQuerySupport_xcb.txt +++ b/chapters/VK_KHR_xcb_surface/platformQuerySupport_xcb.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_xlib_surface/platformCreateSurface_xlib.txt b/chapters/VK_KHR_xlib_surface/platformCreateSurface_xlib.txt index 886eb1b4cd..d720ba8923 100644 --- a/chapters/VK_KHR_xlib_surface/platformCreateSurface_xlib.txt +++ b/chapters/VK_KHR_xlib_surface/platformCreateSurface_xlib.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_KHR_xlib_surface/platformQuerySupport_xlib.txt b/chapters/VK_KHR_xlib_surface/platformQuerySupport_xlib.txt index 6be6d5410e..91c17cfa05 100644 --- a/chapters/VK_KHR_xlib_surface/platformQuerySupport_xlib.txt +++ b/chapters/VK_KHR_xlib_surface/platformQuerySupport_xlib.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/VK_NV_ray_tracing/raytracing.txt b/chapters/VK_NV_ray_tracing/raytracing.txt index a2d294d432..d09052d091 100644 --- a/chapters/VK_NV_ray_tracing/raytracing.txt +++ b/chapters/VK_NV_ray_tracing/raytracing.txt @@ -341,15 +341,15 @@ The base for the computation of miss shader locations is code:missProgramShaderBindingTableBaseIndex, a base index passed into flink:vkCmdTraceRaysNV. -The code:sbtRecordOffset value is passed in as parameters to code:traceNV() -calls made in the shaders. +The code:missIndex value is passed in as parameters to code:traceNV() calls +made in the shaders. See Section 8.19 (Ray Tracing Functions) of the OpenGL Shading Language Specification for more details. The complete rule to compute a miss shader binding table record address is: :: [eq]#code:missProgramShaderBindingTableBaseIndex {times} - pname:missShaderBindingStride {plus} code:sbtRecordOffset# + pname:missShaderBindingStride {plus} code:missIndex# [[acceleration-structure]] diff --git a/chapters/clears.txt b/chapters/clears.txt index 02dccae636..8f586bb53f 100644 --- a/chapters/clears.txt +++ b/chapters/clears.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/cmdbuffers.txt b/chapters/cmdbuffers.txt index de988e18fb..e95b268398 100644 --- a/chapters/cmdbuffers.txt +++ b/chapters/cmdbuffers.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/copies.txt b/chapters/copies.txt index 4a49393e66..d999ae9de1 100644 --- a/chapters/copies.txt +++ b/chapters/copies.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/descriptorsets.txt b/chapters/descriptorsets.txt index f24ac3e344..f69c2c3315 100644 --- a/chapters/descriptorsets.txt +++ b/chapters/descriptorsets.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -23,6 +23,12 @@ binding number that link them to a descriptor in a descriptor set. The shader interface mapping to bound descriptor sets is described in the <> section. +ifdef::VK_EXT_buffer_device_address[] +Shaders can: also access buffers without going through descriptors by using +<> to +access them through 64-bit addresses. +endif::VK_EXT_buffer_device_address[] + [[descriptorsets-types]] == Descriptor Types @@ -3972,3 +3978,83 @@ created on are ignored. include::../validity/protos/vkCmdPushConstants.txt[] -- + +ifdef::VK_EXT_buffer_device_address[] + +== Physical Storage Buffer Access + +[[descriptorsets-physical-storage-buffer]] + +[open,refpage='vkGetBufferDeviceAddressEXT',desc='Query an address of a buffer',type='protos'] +-- + +To query a 64-bit buffer device address value through which buffer memory +can: be accessed in a shader, call: + +include::../api/protos/vkGetBufferDeviceAddressEXT.txt[] + + * pname:device is the logical device that the buffer was created on. + * pname:pInfo is a pointer to an instance of the + slink:VkBufferDeviceAddressInfoEXT structure specifying the buffer to + retrieve an address for. + +The 64-bit return value is an address of the start of +pname:pInfo::pname:buffer. +The address range starting at this value and whose size is the size of the +buffer can: be used in a shader to access the memory bound to that buffer, +using the `SPV_EXT_physical_storage_buffer` extension and the +code:PhysicalStorageBufferEXT storage class. +For example, this value can: be stored in a uniform buffer, and the shader +can: read the value from the uniform buffer and use it to do a dependent +read/write to this buffer. +A value of zero is reserved as a "null" pointer and must: not be returned as +a valid buffer device address. +All loads, stores, and atomics in a shader through +code:PhysicalStorageBufferEXT pointers must: access addresses in the address +range of some buffer. + +If the buffer was created with a non-zero value of +slink:VkBufferDeviceAddressCreateInfoEXT::pname:deviceAddress, the return +value will be the same address. + +.Valid Usage +**** + * [[VUID-vkGetBufferDeviceAddressEXT-None-02598]] + The <> + feature must: be enabled + * [[VUID-vkGetBufferDeviceAddressEXT-device-02599]] + If pname:device was created with multiple physical devices, then the + <> + feature must: be enabled +**** + +include::../validity/protos/vkGetBufferDeviceAddressEXT.txt[] +-- + +[open,refpage='VkBufferDeviceAddressInfoEXT',desc='Structure specifying the buffer to query an address for',type='structs'] +-- + +The sname:VkBufferDeviceAddressInfoEXT structure is defined as: + +include::../api/structs/VkBufferDeviceAddressInfoEXT.txt[] + + * pname:sType is the type of this structure. + * pname:pNext is `NULL` or a pointer to an extension-specific structure. + * pname:buffer specifies the buffer whose address is being queried. + +.Valid Usage +**** + * [[VUID-VkBufferDeviceAddressInfoEXT-buffer-02600]] + If pname:buffer is non-sparse and was not created with the + ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT flag, then + it must: be bound completely and contiguously to a single + sname:VkDeviceMemory object + * [[VUID-VkBufferDeviceAddressInfoEXT-buffer-02601]] + pname:buffer must: have been created with + ename:VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT +**** + +include::../validity/structs/VkBufferDeviceAddressInfoEXT.txt[] +-- + +endif::VK_EXT_buffer_device_address[] diff --git a/chapters/devsandqueues.txt b/chapters/devsandqueues.txt index dc952a4037..80b73cb055 100644 --- a/chapters/devsandqueues.txt +++ b/chapters/devsandqueues.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/dispatch.txt b/chapters/dispatch.txt index c698b944e7..5fdd5285d4 100644 --- a/chapters/dispatch.txt +++ b/chapters/dispatch.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/drawing.txt b/chapters/drawing.txt index db6833ed69..79d534f8a0 100644 --- a/chapters/drawing.txt +++ b/chapters/drawing.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/extensions.txt b/chapters/extensions.txt index c3c5f4938b..0026b55754 100644 --- a/chapters/extensions.txt +++ b/chapters/extensions.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/features.txt b/chapters/features.txt index 2184d529ca..9f7d66feca 100644 --- a/chapters/features.txt +++ b/chapters/features.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -194,6 +194,10 @@ ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[] treated as pointing to a zero-sized object, so all accesses through such pointers are considered to be out of bounds. endif::VK_VERSION_1_1,VK_KHR_variable_pointers[] +ifdef::VK_EXT_buffer_device_address[] + Buffer accesses through buffer device addresses are not + bounds-checked. +endif::VK_EXT_buffer_device_address[] + [NOTE] .Note @@ -930,8 +934,12 @@ include::../api/structs/VkPhysicalDevice8BitStorageFeaturesKHR.txt[] * pname:pNext is `NULL` or a pointer to an extension-specific structure. * [[features-features-storageBuffer8BitAccess]] pname:storageBuffer8BitAccess indicates whether objects in the - code:StorageBuffer storage class with the code:Block decoration can: - have 8-bit integer members. + code:StorageBuffer +ifdef::VK_EXT_buffer_device_address[] + or code:PhysicalStorageBufferEXT +endif::VK_EXT_buffer_device_address[] + storage class with the code:Block decoration can: have 8-bit integer + members. If this feature is not enabled, 8-bit integer members must: not be used in such objects. This also indicates whether shader modules can: declare the @@ -939,8 +947,11 @@ include::../api/structs/VkPhysicalDevice8BitStorageFeaturesKHR.txt[] * [[features-features-uniformAndStorageBuffer8BitAccess]] pname:uniformAndStorageBuffer8BitAccess indicates whether objects in the code:Uniform storage class with the code:Block decoration and in the - code:StorageBuffer storage class with the same decoration can: have - 8-bit integer members. + code:StorageBuffer +ifdef::VK_EXT_buffer_device_address[] + or code:PhysicalStorageBufferEXT +endif::VK_EXT_buffer_device_address[] + storage class with the same decoration can: have 8-bit integer members. If this feature is not enabled, 8-bit integer members must: not be used in such objects. This also indicates whether shader modules can: declare the @@ -984,8 +995,12 @@ endif::VK_KHR_16bit_storage[] * pname:pNext is `NULL` or a pointer to an extension-specific structure. * [[features-features-storageBuffer16BitAccess]] pname:storageBuffer16BitAccess specifies whether objects in the - code:StorageBuffer storage class with the code:Block decoration can: - have 16-bit integer and 16-bit floating-point members. + code:StorageBuffer +ifdef::VK_EXT_buffer_device_address[] + or code:PhysicalStorageBufferEXT +endif::VK_EXT_buffer_device_address[] + storage class with the code:Block decoration can: have 16-bit integer + and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must: not be used in such objects. This also specifies whether shader modules can: declare the @@ -993,8 +1008,12 @@ endif::VK_KHR_16bit_storage[] * [[features-features-uniformAndStorageBuffer16BitAccess]] pname:uniformAndStorageBuffer16BitAccess specifies whether objects in the code:Uniform storage class with the code:Block decoration and in the - code:StorageBuffer storage class with the same decoration can: have - 16-bit integer and 16-bit floating-point members. + code:StorageBuffer +ifdef::VK_EXT_buffer_device_address[] + or code:PhysicalStorageBufferEXT +endif::VK_EXT_buffer_device_address[] + storage class with the same decoration can: have 16-bit integer and + 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must: not be used in such objects. This also specifies whether shader modules can: declare the @@ -1858,6 +1877,78 @@ include::../validity/structs/VkPhysicalDeviceScalarBlockLayoutFeaturesEXT.txt[] endif::VK_EXT_scalar_block_layout[] +ifdef::VK_EXT_memory_priority[] + +[open,refpage='VkPhysicalDeviceMemoryPriorityFeaturesEXT',desc='Structure describing memory priority features that can be supported by an implementation',type='structs'] +-- +The sname:VkPhysicalDeviceMemoryPriorityFeaturesEXT structure is defined as: + +include::../api/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.txt[] + +The members of the sname:VkPhysicalDeviceMemoryPriorityFeaturesEXT structure +describe the following features: + + * [[features-features-memoryPriority]] pname:memoryPriority indicates that + the implementation supports memory priorities specified at memory + allocation time via slink:VkMemoryPriorityAllocateInfoEXT. + +If the sname:VkPhysicalDeviceMemoryPriorityFeaturesEXT structure is included +in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR, it is filled +with values indicating whether the feature is supported. +sname:VkPhysicalDeviceMemoryPriorityFeaturesEXT can: also be used in the +pname:pNext chain of slink:VkDeviceCreateInfo to enable features. + +include::../validity/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.txt[] +-- + +endif::VK_EXT_memory_priority[] + +ifdef::VK_EXT_buffer_device_address[] + +[open,refpage='VkPhysicalDeviceBufferAddressFeaturesEXT',desc='Structure describing buffer address features that can be supported by an implementation',type='structs'] +-- +The sname:VkPhysicalDeviceBufferAddressFeaturesEXT structure is defined as: + +include::../api/structs/VkPhysicalDeviceBufferAddressFeaturesEXT.txt[] + +The members of the sname:VkPhysicalDeviceBufferAddressFeaturesEXT structure +describe the following features: + + * [[features-features-bufferDeviceAddress]] pname:bufferDeviceAddress + indicates that the implementation supports accessing buffer memory in + shaders as storage buffers via an address queried from + flink:vkGetBufferDeviceAddressEXT. + * [[features-features-bufferDeviceAddressCaptureReplay]] + pname:bufferDeviceAddressCaptureReplay indicates that the implementation + supports saving and reusing buffer addresses, e.g. for trace capture and + replay. + * [[features-features-bufferDeviceAddressMultiDevice]] + pname:bufferDeviceAddressMultiDevice indicates that the implementation + supports the pname:bufferDeviceAddress feature for logical devices + created with multiple physical devices. + If this feature is not supported, buffer addresses must: not be queried + on a logical device created with more than one physical device. + +[NOTE] +.Note +==== +pname:bufferDeviceAddressMultiDevice exists to allow certain legacy +platforms to be able to support pname:bufferDeviceAddress without needing to +support shared GPU virtual addresses for multi-device configurations. +==== + +See flink:vkGetBufferDeviceAddressEXT for more information. + +If the sname:VkPhysicalDeviceBufferAddressFeaturesEXT structure is included +in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR, it is filled +with values indicating whether the feature is supported. +sname:VkPhysicalDeviceBufferAddressFeaturesEXT can: also be used in the +pname:pNext chain of slink:VkDeviceCreateInfo to enable features. + +include::../validity/structs/VkPhysicalDeviceBufferAddressFeaturesEXT.txt[] +-- + +endif::VK_EXT_buffer_device_address[] [[features-features-requirements]] === Feature Requirements @@ -3965,6 +4056,45 @@ include::../validity/structs/VkPhysicalDeviceShaderCorePropertiesAMD.txt[] endif::VK_AMD_shader_core_properties[] + +ifdef::VK_KHR_depth_stencil_resolve[] +[open,refpage='VkPhysicalDeviceDepthStencilResolvePropertiesKHR',desc='Structure describing depth/stencil resolve properties that can be supported by an implementation',type='structs'] +-- + +The sname:VkPhysicalDeviceDepthStencilResolvePropertiesKHR structure is +defined as: + +include::../api/structs/VkPhysicalDeviceDepthStencilResolvePropertiesKHR.txt[] + +The members of the sname:VkPhysicalDeviceDepthStencilResolvePropertiesKHR +structure describe the following implementation-dependent limits: + + * [[features-features-depthResolveModes]] pname:supportedDepthResolveModes + is a bitmask of elink:VkResolveModeFlagBitsKHR indicating the set of + supported depth resolve modes. + ename:VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR must: be included in the set + but implementations may: support additional modes. + * [[features-features-stencilResolveModes]] + pname:supportedStencilResolveModes is a bitmask of + elink:VkResolveModeFlagBitsKHR indicating the set of supported stencil + resolve modes. + ename:VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR must: be included in the set + but implementations may: support additional modes. + ename:VK_RESOLVE_MODE_AVERAGE_BIT_KHR must: not be included in the set. + * [[features-features-independentResolveNone]] + pname:independentResolveNone is ename:VK_TRUE if the implementation + supports setting the depth and stencil resolve modes to different values + when one of those modes is ename:VK_RESOLVE_MODE_NONE_KHR. + Otherwise the implementation only supports setting both modes to the + same value. + * [[features-features-independentResolve]] pname:independentResolve is + ename:VK_TRUE if the implementation supports all combinations of the + supported depth and stencil resolve modes. + +include::../validity/structs/VkPhysicalDeviceDepthStencilResolvePropertiesKHR.txt[] +-- +endif::VK_KHR_depth_stencil_resolve[] + ifdef::VK_NV_shading_rate_image[] [open,refpage='VkPhysicalDeviceShadingRateImagePropertiesNV',desc='Structure describing shading rate image limits that can be supported by an implementation',type='structs'] diff --git a/chapters/fragmentdensitymapops.txt b/chapters/fragmentdensitymapops.txt index 0d75461d65..7e8ec2e264 100644 --- a/chapters/fragmentdensitymapops.txt +++ b/chapters/fragmentdensitymapops.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Khronos Group. This work is licensed under a +// Copyright (c) 2018-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/fragops.txt b/chapters/fragops.txt index 875f84be93..516568b05a 100644 --- a/chapters/fragops.txt +++ b/chapters/fragops.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/framebuffer.txt b/chapters/framebuffer.txt index e77e3f87f8..d60928a733 100644 --- a/chapters/framebuffer.txt +++ b/chapters/framebuffer.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/fundamentals.txt b/chapters/fundamentals.txt index e0bce86443..8d341e0147 100644 --- a/chapters/fundamentals.txt +++ b/chapters/fundamentals.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -542,6 +542,17 @@ include::../api/basetypes/VkDeviceSize.txt[] -- +ifdef::VK_EXT_buffer_device_address[] +[open,refpage='VkDeviceAddress',desc='Vulkan device address type',type='basetypes'] +-- + +basetype:VkDeviceAddress represents device buffer address values: + +include::../api/basetypes/VkDeviceAddress.txt[] + +-- +endif::VK_EXT_buffer_device_address[] + Commands that create Vulkan objects are of the form ftext:vkCreate* and take stext:Vk*CreateInfo structures with the parameters needed to create the object. @@ -1146,6 +1157,10 @@ ifdef::VK_EXT_descriptor_indexing[] * ename:VK_ERROR_FRAGMENTATION_EXT A descriptor pool creation has failed due to fragmentation. endif::VK_EXT_descriptor_indexing[] +ifdef::VK_EXT_buffer_device_address[] + * ename:VK_ERROR_INVALID_DEVICE_ADDRESS_EXT A buffer creation failed + because the requested address is not available. +endif::VK_EXT_buffer_device_address[] If a command returns a run time error, unless otherwise specified any output parameters will have undefined: contents, except that if the output diff --git a/chapters/fxvertex.txt b/chapters/fxvertex.txt index 3a296051e3..3aa4d50d0d 100644 --- a/chapters/fxvertex.txt +++ b/chapters/fxvertex.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/geometry.txt b/chapters/geometry.txt index c680f77b54..c7d38f148a 100644 --- a/chapters/geometry.txt +++ b/chapters/geometry.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/initialization.txt b/chapters/initialization.txt index 01e74464cc..d2a2cad8d1 100644 --- a/chapters/initialization.txt +++ b/chapters/initialization.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -293,6 +293,10 @@ ifdef::VK_EXT_validation_flags[] include::VK_EXT_validation_flags.txt[] endif::VK_EXT_validation_flags[] +ifdef::VK_EXT_validation_features[] +include::VK_EXT_validation_features.txt[] +endif::VK_EXT_validation_features[] + [open,refpage='VkApplicationInfo',desc='Structure specifying application info',type='structs'] -- diff --git a/chapters/interfaces.txt b/chapters/interfaces.txt index dc15b6e976..4a105c6dcc 100644 --- a/chapters/interfaces.txt +++ b/chapters/interfaces.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -1014,6 +1014,10 @@ a decoration of code:BufferBlock (storage buffers) ifdef::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[] , or a storage class of code:StorageBuffer with a decoration of code:Block endif::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[] +ifdef::VK_EXT_buffer_device_address[] +, or a storage class of code:PhysicalStorageBufferEXT with a decoration of + code:Block +endif::VK_EXT_buffer_device_address[] must: be laid out as <>, except for array and structure base alignment which do not need to be rounded up to a multiple of [eq]#16#. diff --git a/chapters/introduction.txt b/chapters/introduction.txt index 54b32a9d33..156f181036 100644 --- a/chapters/introduction.txt +++ b/chapters/introduction.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/memory.txt b/chapters/memory.txt index f6cdfa0965..2e0c003347 100644 --- a/chapters/memory.txt +++ b/chapters/memory.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -799,6 +799,48 @@ tname:VkMemoryPropertyFlags is a bitmask type for setting a mask of zero or more elink:VkMemoryPropertyFlagBits. -- + +ifdef::VK_EXT_memory_budget[] + +[open,refpage='VkPhysicalDeviceMemoryBudgetPropertiesEXT',desc='Structure specifying physical device memory budget and usage',type='structs'] +-- + +If the sname:VkPhysicalDeviceMemoryBudgetPropertiesEXT structure is included +in the pname:pNext chain of slink:VkPhysicalDeviceMemoryProperties2, it is +filled with the current memory budgets and usages. + +The sname:VkPhysicalDeviceMemoryBudgetPropertiesEXT structure is defined as: + +include::../api/structs/VkPhysicalDeviceMemoryBudgetPropertiesEXT.txt[] + + * pname:sType is the type of this structure. + * pname:pNext is `NULL` or a pointer to an extension-specific structure. + * pname:heapBudget is an array of memory budgets, with one element for + each memory heap. + A heap's budget is a rough estimate of how much memory the process can: + allocate from that heap before allocations may: fail or cause + performance degradation. + The budget includes any currently allocated device memory. + * pname:heapUsage is an array of memory usage, with one element for each + memory heap. + A heap's usage is an estimate of how much memory the process is + currently using in that heap. + +The values returned in this structure are not invariant. +The pname:heapBudget and pname:heapUsage values must: be zero for array +elements greater than or equal to +slink:VkPhysicalDeviceMemoryProperties::pname:memoryHeapCount. +The pname:heapBudget value must: be non-zero for array elements less than +slink:VkPhysicalDeviceMemoryProperties::pname:memoryHeapCount. +The pname:heapBudget value must: be less than or equal to +slink:VkMemoryHeap::pname:size for each heap. + +include::../validity/structs/VkPhysicalDeviceMemoryBudgetPropertiesEXT.txt[] +-- + +endif::VK_EXT_memory_budget[] + + [open,refpage='VkDeviceMemory',desc='Opaque handle to a device memory object',type='handles'] -- @@ -1347,6 +1389,44 @@ include::../validity/structs/VkDedicatedAllocationMemoryAllocateInfoNV.txt[] endif::VK_NV_dedicated_allocation[] + +ifdef::VK_EXT_memory_priority[] + +[open,refpage='VkMemoryPriorityAllocateInfoEXT',desc='Specify a memory allocation priority',type='structs'] +-- + +If the pname:pNext chain includes a sname:VkMemoryPriorityAllocateInfoEXT +structure, then that structure includes a priority for the memory. + +The sname:VkMemoryPriorityAllocateInfoEXT structure is defined as: + +include::../api/structs/VkMemoryPriorityAllocateInfoEXT.txt[] + + * pname:sType is the type of this structure. + * pname:pNext is `NULL` or a pointer to an extension-specific structure. + * pname:priority is a floating-point value between `0` and `1`, indicating + the priority of the allocation relative to other memory allocations. + Larger values are higher priority. + The granularity of the priorities is implementation-dependent. + +Memory allocations with higher priority may: be more likely to stay in +device-local memory when the system is under memory pressure. + +If this structure is not included, it is as if the pname:priority value were +`0.5`. + +.Valid Usage +**** + * [[VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602]] + pname:priority must: be between `0` and `1`, inclusive +**** + +include::../validity/structs/VkMemoryPriorityAllocateInfoEXT.txt[] +-- + +endif::VK_EXT_memory_priority[] + + ifdef::VK_VERSION_1_1,VK_KHR_external_memory[] [open,refpage='VkExportMemoryAllocateInfo',desc='Specify exportable handle types for a device memory object',type='structs'] diff --git a/chapters/pipelines.txt b/chapters/pipelines.txt index 60d0b75d30..b43068bf6d 100644 --- a/chapters/pipelines.txt +++ b/chapters/pipelines.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/primsrast.txt b/chapters/primsrast.txt index e3faf2776e..b232854f3d 100644 --- a/chapters/primsrast.txt +++ b/chapters/primsrast.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/queries.txt b/chapters/queries.txt index 19165605d0..1cc34bcede 100644 --- a/chapters/queries.txt +++ b/chapters/queries.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/renderpass.txt b/chapters/renderpass.txt index efdc749363..8099a684fe 100644 --- a/chapters/renderpass.txt +++ b/chapters/renderpass.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -39,10 +39,18 @@ which are attachments that are not read or written by the subpass but whose contents must: be preserved throughout the subpass. A subpass _uses an attachment_ if the attachment is a color, depth/stencil, -resolve, or input attachment for that subpass (as determined by the +resolve, +ifdef::VK_KHR_depth_stencil_resolve[] +depth/stencil resolve, +endif::VK_KHR_depth_stencil_resolve[] +or input attachment for that subpass (as determined by the pname:pColorAttachments, pname:pDepthStencilAttachment, -pname:pResolveAttachments, and pname:pInputAttachments members of -slink:VkSubpassDescription, respectively). +pname:pResolveAttachments, +ifdef::VK_KHR_depth_stencil_resolve[] +slink:VkSubpassDescriptionDepthStencilResolveKHR::pname:pDepthStencilResolveAttachment, +endif::VK_KHR_depth_stencil_resolve[] +and pname:pInputAttachments members of slink:VkSubpassDescription, +respectively). A subpass does not use an attachment if that attachment is preserved by the subpass. The _first use of an attachment_ is in the lowest numbered subpass that uses @@ -861,60 +869,98 @@ include::../api/structs/VkSubpassDescription.txt[] * pname:flags is a bitmask of elink:VkSubpassDescriptionFlagBits specifying usage of the subpass. * pname:pipelineBindPoint is a elink:VkPipelineBindPoint value specifying - whether this is a compute or graphics subpass. - Currently, only graphics subpasses are supported. + the pipeline type supported for this subpass. * pname:inputAttachmentCount is the number of input attachments. * pname:pInputAttachments is an array of slink:VkAttachmentReference - structures (defined below) that lists which of the render pass's - attachments can: be read in the fragment shader stage during the - subpass, and what layout each attachment will be in during the subpass. - Each element of the array corresponds to an input attachment unit number - in the shader, i.e. if the shader declares an input variable - `layout(input_attachment_index=X, set=Y, binding=Z)` then it uses the - attachment provided in pname:pInputAttachments[X]. - Input attachments must: also be bound to the pipeline with a descriptor - set, with the input attachment descriptor written in the location - (set=Y, binding=Z). - Fragment shaders can: use subpass input variables to access the contents - of an input attachment at the fragment's (x, y, layer) framebuffer - coordinates. + structures defining the input attachments for this subpass and their + layouts. * pname:colorAttachmentCount is the number of color attachments. - * pname:pColorAttachments is an array of pname:colorAttachmentCount - slink:VkAttachmentReference structures that lists which of the render - pass's attachments will be used as color attachments in the subpass, and - what layout each attachment will be in during the subpass. - Each element of the array corresponds to a fragment shader output - location, i.e. if the shader declared an output variable - `layout(location=X)` then it uses the attachment provided in - pname:pColorAttachments[X]. - * pname:pResolveAttachments is `NULL` or an array of - pname:colorAttachmentCount slink:VkAttachmentReference structures that - lists which of the render pass's attachments are resolved to at the end - of the subpass, and what layout each attachment will be in during the - multisample resolve operation. - If pname:pResolveAttachments is not `NULL`, each of its elements - corresponds to a color attachment (the element in - pname:pColorAttachments at the same index), and a multisample resolve - operation is defined for each attachment. - At the end of each subpass, multisample resolve operations read the - subpass's color attachments, and resolve the samples for each pixel to - the same pixel location in the corresponding resolve attachments, unless - the resolve attachment index is ename:VK_ATTACHMENT_UNUSED. - If the first use of an attachment in a render pass is as a resolve - attachment, then the pname:loadOp is effectively ignored as the resolve - is guaranteed to overwrite all pixels in the render area. + * pname:pColorAttachments is an array of slink:VkAttachmentReference + structures defining the color attachments for this subpass and their + layouts. + * pname:pResolveAttachments is an optional array of + pname:colorAttachmentCount slink:VkAttachmentReference structures + defining the resolve attachments for this subpass and their layouts. * pname:pDepthStencilAttachment is a pointer to a - slink:VkAttachmentReference specifying which attachment will be used for - depth/stencil data and the layout it will be in during the subpass. - Setting the attachment index to ename:VK_ATTACHMENT_UNUSED or leaving - this pointer as `NULL` indicates that no depth/stencil attachment will - be used in the subpass. + slink:VkAttachmentReference specifying the depth/stencil attachment for + this subpass and its layout. * pname:preserveAttachmentCount is the number of preserved attachments. * pname:pPreserveAttachments is an array of pname:preserveAttachmentCount - render pass attachment indices describing the attachments that are not - used by a subpass, but whose contents must: be preserved throughout the + render pass attachment indices identifying attachments that are not used + by this subpass, but whose contents must: be preserved throughout the subpass. +Each element of the pname:pInputAttachments array corresponds to an input +attachment index in a fragment shader, i.e. if a shader declares an image +variable decorated with a code:InputAttachmentIndex value of *X*, then it +uses the attachment provided in pname:pInputAttachments[*X*]. +Input attachments must: also be bound to the pipeline in a descriptor set. +If the pname:attachment member of any element of pname:pInputAttachments is +ename:VK_ATTACHMENT_UNUSED, the application must: not read from the +corresponding input attachment index. +Fragment shaders can: use subpass input variables to access the contents of +an input attachment at the fragment's (x, y, layer) framebuffer coordinates. + +Each element of the pname:pColorAttachments array corresponds to an output +location in the shader, i.e. if the shader declares an output variable +decorated with a code:Location value of *X*, then it uses the attachment +provided in pname:pColorAttachments[*X*]. +If the pname:attacment member of any element of pname:pColorAttachments is +ename:VK_ATTACHMENT_UNUSED, writes to the corresponding location by a +fragment are discarded. + +If pname:pResolveAttachments is not `NULL`, each of its elements corresponds +to a color attachment (the element in pname:pColorAttachments at the same +index), and a multisample resolve operation is defined for each attachment. +At the end of each subpass, multisample resolve operations read the +subpass's color attachments, and resolve the samples for each pixel to the +same pixel location in the corresponding resolve attachments, unless the +resolve attachment index is ename:VK_ATTACHMENT_UNUSED. + +ifdef::VK_KHR_depth_stencil_resolve[] +Similarly, if +slink:VkSubpassDescriptionDepthStencilResolveKHR::pname:pDepthStencilResolveAttachment +is not `NULL` and does not have the value ename:VK_ATTACHMENT_UNUSED, it +corresponds to the depth/stencil attachment in +pname:pDepthStencilAttachment, and multisample resolve operations for depth +and stencil are defined by +slink:VkSubpassDescriptionDepthStencilResolveKHR::pname:depthResolveMode and +slink:VkSubpassDescriptionDepthStencilResolveKHR::pname:stencilResolveMode, +respectively. +At the end of each subpass, multisample resolve operations read the +subpass's depth/stencil attachment, and resolve the samples for each pixel +to the same pixel location in the corresponding resolve attachment. +If slink:VkSubpassDescriptionDepthStencilResolveKHR::pname:depthResolveMode +is ename:VK_RESOLVE_MODE_NONE_KHR, then the depth component of the resolve +attachment is not written to and its contents are preserved. +Similarly, if +slink:VkSubpassDescriptionDepthStencilResolveKHR::pname:stencilResolveMode +is ename:VK_RESOLVE_MODE_NONE_KHR, then the stencil component of the resolve +attachment is not written to and its contents are preserved. +slink:VkSubpassDescriptionDepthStencilResolveKHR::pname:depthResolveMode is +ignored if the elink:VkFormat of the pname:pDepthStencilResolveAttachment +does not have a depth component. +Similarly, +slink:VkSubpassDescriptionDepthStencilResolveKHR::pname:stencilResolveMode +is ignored if the elink:VkFormat of the pname:pDepthStencilResolveAttachment +does not have a stencil component. + +ifdef::VK_EXT_sample_locations[] +If the image subresource range referenced by the depth/stencil attachment is +created with +ename:VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, then the +multisample resolve operation uses the sample locations state specified in +the pname:sampleLocationsInfo member of the element of the +sname:VkRenderPassSampleLocationsBeginInfoEXT::pname:pPostSubpassSampleLocations +for the subpass. +endif::VK_EXT_sample_locations[] + +endif::VK_KHR_depth_stencil_resolve[] + +If pname:pDepthStencilAttachment is `NULL`, or if its attachment index is +ename:VK_ATTACHMENT_UNUSED, it indicates that no depth/stencil attachment +will be used in the subpass. + The contents of an attachment within the render area become undefined: at the start of a subpass *S* if all of the following conditions are true: @@ -1839,6 +1885,110 @@ endif::VK_NVX_multiview_per_view_attributes[] include::../validity/structs/VkSubpassDescription2KHR.txt[] -- +ifdef::VK_KHR_depth_stencil_resolve[] +[open,refpage='VkSubpassDescriptionDepthStencilResolveKHR',desc='Structure specifying depth/stencil resolve operations for a subpass',type='structs'] +-- + +If the pname:pNext list of sname:VkSubpassDescription2KHR includes a +sname:VkSubpassDescriptionDepthStencilResolveKHR structure, then that +structure describes multisample resolve operations for the depth/stencil +attachment in a subpass. + +The sname:VkSubpassDescriptionDepthStencilResolveKHR structure is defined +as: + +include::../api/structs/VkSubpassDescriptionDepthStencilResolveKHR.txt[] + + * pname:sType is the type of this structure. + * pname:pNext is `NULL` or a pointer to an extension-specific structure. + * pname:depthResolveMode is a bitmask of elink:VkResolveModeFlagBitsKHR + describing the depth resolve mode. + * pname:stencilResolveMode is a bitmask of elink:VkResolveModeFlagBitsKHR + describing the stencil resolve mode. + * pname:pDepthStencilResolveAttachment is an optional + slink:VkAttachmentReference structure defining the depth/stencil resolve + attachment for this subpass and its layout. + +.Valid Usage +**** + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03177]] + If pname:pDepthStencilResolveAttachment is not `NULL` and does not have + the value ename:VK_ATTACHMENT_UNUSED, pname:pDepthStencilAttachment + must: not have the value ename:VK_ATTACHMENT_UNUSED + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03178]] + If pname:pDepthStencilResolveAttachment is not `NULL` and does not have + the value ename:VK_ATTACHMENT_UNUSED, pname:depthResolveMode and + pname:stencilResolveMode must: not both be + ename:VK_RESOLVE_MODE_NONE_KHR + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03179]] + If pname:pDepthStencilResolveAttachment is not `NULL`, the sample count + of pname:pDepthStencilAttachment must: be anything other than + ename:VK_SAMPLE_COUNT_1_BIT + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03180]] + pname:pDepthStencilResolveAttachment must: have a sample count of + ename:VK_SAMPLE_COUNT_1_BIT + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03181]] + If the elink:VkFormat of pname:pDepthStencilResolveAttachment has a + depth component, then the elink:VkFormat of + pname:pDepthStencilAttachment must: have a depth component with the same + number of bits and numerical type + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03182]] + If the elink:VkFormat of pname:pDepthStencilResolveAttachment has a + stencil component, then the elink:VkFormat of + pname:pDepthStencilAttachment must: have a stencil component with the + same number of bits and numerical type + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-depthResolveMode-03183]] + The value of pname:depthResolveMode must: be one of the bits set in + slink:VkPhysicalDeviceDepthStencilResolvePropertiesKHR::pname:supportedDepthResolveModes + or ename:VK_RESOLVE_MODE_NONE_KHR + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-stencilResolveMode-03184]] + The value of pname:stencilResolveMode must: be one of the bits set in + slink:VkPhysicalDeviceDepthStencilResolvePropertiesKHR::pname:supportedStencilResolveModes + or ename:VK_RESOLVE_MODE_NONE_KHR + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03185]] + If the elink:VkFormat of pname:pDepthStencilResolveAttachment has both + depth and stencil components, + slink:VkPhysicalDeviceDepthStencilResolvePropertiesKHR::pname:independentResolve + is ename:VK_FALSE, and + slink:VkPhysicalDeviceDepthStencilResolvePropertiesKHR::pname:independentResolveNone + is ename:VK_FALSE, then the values of pname:depthResolveMode and + pname:stencilResolveMode must: be identical + * [[VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03186]] + If the elink:VkFormat of pname:pDepthStencilResolveAttachment has both + depth and stencil components, + slink:VkPhysicalDeviceDepthStencilResolvePropertiesKHR::pname:independentResolve + is ename:VK_FALSE and + slink:VkPhysicalDeviceDepthStencilResolvePropertiesKHR::pname:independentResolveNone + is ename:VK_TRUE, then the values of pname:depthResolveMode and + pname:stencilResolveMode must: be identical or one of them must: be + ename:VK_RESOLVE_MODE_NONE_KHR +**** + +include::../validity/structs/VkSubpassDescriptionDepthStencilResolveKHR.txt[] +-- + +[open,refpage='VkResolveModeFlagBitsKHR',desc='Bitmask indicating supported depth and stencil resolve modes',type='enums'] +-- +Possible values of +slink:VkSubpassDescriptionDepthStencilResolveKHR::pname:depthResolveMode and +pname:stencilResolveMode, specifying the depth and stencil resolve modes, +are: + +include::../api/enums/VkResolveModeFlagBitsKHR.txt[] + + * ename:VK_RESOLVE_MODE_NONE_KHR indicates that no resolve operation is + done. + * ename:VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR indicates that result of the + resolve operation is equal to the value of sample 0. + * ename:VK_RESOLVE_MODE_AVERAGE_BIT_KHR indicates that result of the + resolve operation is the average of the sample values. + * ename:VK_RESOLVE_MODE_MIN_BIT_KHR indicates that result of the resolve + operation is the minimum of the sample values. + * ename:VK_RESOLVE_MODE_MAX_BIT_KHR indicates that result of the resolve + operation is the maximum of the sample values. +-- +endif::VK_KHR_depth_stencil_resolve[] + [open,refpage='VkAttachmentReference2KHR',desc='Structure specifying an attachment reference',type='structs'] -- @@ -2069,6 +2219,10 @@ are otherwise identical except for: * Load and store operations in attachment descriptions * Image layout in attachment references +As an additional special case, if two render passes have a single subpass, +they are compatible even if they have different resolve attachment +references but satisfy the other compatibility conditions. + A framebuffer is compatible with a render pass if it was created using the same render pass or a compatible render pass. @@ -2192,8 +2346,11 @@ slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples. Each element of pname:pAttachments that is used as a color attachment or resolve attachment by pname:renderPass must: have been created with a pname:usage value including ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT - * [[VUID-VkFramebufferCreateInfo-pAttachments-00878]] + * [[VUID-VkFramebufferCreateInfo-pAttachments-02603]] Each element of pname:pAttachments that is used as a depth/stencil +ifdef::VK_KHR_depth_stencil_resolve[] + attachment or depth/stencil resolve +endif::VK_KHR_depth_stencil_resolve[] attachment by pname:renderPass must: have been created with a pname:usage value including ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT @@ -2908,6 +3065,10 @@ Moving to the next subpass automatically performs any multisample resolve operations in the subpass being ended. End-of-subpass multisample resolves are treated as color attachment writes for the purposes of synchronization. +ifdef::VK_KHR_depth_stencil_resolve[] +This applies to resolve operations for both color and depth/stencil +attachments. +endif::VK_KHR_depth_stencil_resolve[] That is, they are considered to execute in the ename:VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT pipeline stage and their writes are synchronized with ename:VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT. diff --git a/chapters/resources.txt b/chapters/resources.txt index 35accfdade..3c79ec87d3 100644 --- a/chapters/resources.txt +++ b/chapters/resources.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -164,6 +164,22 @@ ifdef::VK_NV_dedicated_allocation[] ename:VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or ename:VK_BUFFER_CREATE_SPARSE_ALIASED_BIT endif::VK_NV_dedicated_allocation[] +ifdef::VK_EXT_buffer_device_address[] + * [[VUID-VkBufferCreateInfo-deviceAddress-02604]] + If slink:VkBufferDeviceAddressCreateInfoEXT::pname:deviceAddress is not + zero, pname:flags must: include + ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT + * [[VUID-VkBufferCreateInfo-flags-02605]] + If pname:flags includes + ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, the + <> + feature must: be enabled + * [[VUID-VkBufferCreateInfo-usage-02606]] + If pname:usage includes + ename:VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT, the + <> feature + must: be enabled +endif::VK_EXT_buffer_device_address[] **** include::../validity/structs/VkBufferCreateInfo.txt[] @@ -239,6 +255,13 @@ ifdef::VK_NV_ray_tracing[] suitable for use in flink:vkCmdTraceRaysNV and flink:vkCmdBuildAccelerationStructureNV. endif::VK_NV_ray_tracing[] +ifdef::VK_EXT_buffer_device_address[] + * ename:VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT specifies that the + buffer can: be used to retrieve a buffer device address via + flink:vkGetBufferDeviceAddressEXT and use that address to access the + buffer's memory from a shader. +endif::VK_EXT_buffer_device_address[] + -- [open,refpage='VkBufferUsageFlags',desc='Bitmask of VkBufferUsageFlagBits',type='flags'] @@ -273,6 +296,12 @@ ifdef::VK_VERSION_1_1[] * ename:VK_BUFFER_CREATE_PROTECTED_BIT specifies that the buffer is a protected buffer. endif::VK_VERSION_1_1[] +ifdef::VK_EXT_buffer_device_address[] + * ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT specifies + that the buffer's address can: be saved and reused on a subsequent run + (e.g. for trace capture and replay), see + slink:VkBufferDeviceAddressCreateInfoEXT for more detail. +endif::VK_EXT_buffer_device_address[] See <> and <> for details of the sparse @@ -341,6 +370,59 @@ include::../validity/structs/VkExternalMemoryBufferCreateInfo.txt[] endif::VK_VERSION_1_1,VK_KHR_external_memory[] + +ifdef::VK_EXT_buffer_device_address[] + +[open,refpage='VkBufferDeviceAddressCreateInfoEXT',desc='Request a specific address for a buffer',type='structs'] +-- + +To request a specific device address for a buffer, add a +slink:VkBufferDeviceAddressCreateInfoEXT structure to the pname:pNext chain +of the slink:VkBufferCreateInfo structure. +The sname:VkBufferDeviceAddressCreateInfoEXT structure is defined as: + +include::../api/structs/VkBufferDeviceAddressCreateInfoEXT.txt[] + + * pname:sType is the type of this structure. + * pname:pNext is `NULL` or a pointer to an extension-specific structure. + * pname:deviceAddress is the device address requested for the buffer. + +If pname:deviceAddress is zero, no specific address is requested. + +If pname:deviceAddress is not zero, pname:deviceAddress must: be an address +retrieved from an identically created buffer on the same implementation. +The buffer must: also be bound to an identically created +sname:VkDeviceMemory object. + +If this structure is not present, it is as if pname:deviceAddress is zero. + +Apps should: avoid creating buffers with app-provided addresses and +implementation-provided addresses in the same process, to reduce the +likelihood of ename:VK_ERROR_INVALID_DEVICE_ADDRESS_EXT errors. + +[NOTE] +.Note +==== +The expected usage for this is that a trace capture/replay tool will add the +ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT flag to all +buffers that use ename:VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT, and +during capture will save the queried device addresses in the trace. +During replay, the buffers will be created specifying the original address +so any address values stored in the trace data will remain valid. + +Implementations are expected to separate such buffers in the GPU address +space so normal allocations will avoid using these addresses. +Apps/tools should avoid mixing app-provided and implementation-provided +addresses for buffers created with +ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, to avoid +address space allocation conflicts. +==== + +include::../validity/structs/VkBufferDeviceAddressCreateInfoEXT.txt[] +-- + +endif::VK_EXT_buffer_device_address[] + [open,refpage='vkDestroyBuffer',desc='Destroy a buffer object',type='protos'] -- @@ -1723,7 +1805,11 @@ include::../api/enums/VkImageUsageFlagBits.txt[] resolve attachment in a sname:VkFramebuffer. * ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT specifies that the image can: be used to create a sname:VkImageView suitable for use as a - depth/stencil attachment in a sname:VkFramebuffer. + depth/stencil +ifdef::VK_KHR_depth_stencil_resolve[] + or depth/stencil resolve +endif::VK_KHR_depth_stencil_resolve[] + attachment in a sname:VkFramebuffer. * ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT specifies that the memory bound to this image will have been allocated with the ename:VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT (see <> for more @@ -2497,7 +2583,11 @@ The type(s) of device access supported by each layout are: This layout is valid only for image subresources of images created with the ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT usage bit enabled. * ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL must: only be - used as a depth/stencil attachment in a sname:VkFramebuffer. + used as a depth/stencil +ifdef::VK_KHR_depth_stencil_resolve[] + or depth/stencil resolve +endif::VK_KHR_depth_stencil_resolve[] + attachment in a sname:VkFramebuffer. This layout is valid only for image subresources of images created with the ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bit enabled. * ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL must: only be used diff --git a/chapters/samplers.txt b/chapters/samplers.txt index 182655d290..5c2d102c96 100644 --- a/chapters/samplers.txt +++ b/chapters/samplers.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -287,9 +287,9 @@ additional parameters of a sampler, are: include::../api/enums/VkSamplerCreateFlagBits.txt[] ifdef::VK_EXT_fragment_density_map[] - * ename:VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT specifies that the sampler - will read from an image created with pname:flags containing - ename:VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT. + * [[samplers-subsamplesampler]] ename:VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT + specifies that the sampler will read from an image created with + pname:flags containing ename:VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT. * ename:VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT specifies that the implementation may: use approximations when reconstructing a full color value for texture access from a subsampled diff --git a/chapters/shaders.txt b/chapters/shaders.txt index 269704bbfe..8f88694dc5 100644 --- a/chapters/shaders.txt +++ b/chapters/shaders.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/sparsemem.txt b/chapters/sparsemem.txt index e7285cae65..ae6a8dd2a5 100644 --- a/chapters/sparsemem.txt +++ b/chapters/sparsemem.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/synchronization.txt b/chapters/synchronization.txt index 31dd009301..0516e25c79 100644 --- a/chapters/synchronization.txt +++ b/chapters/synchronization.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -345,7 +345,11 @@ endif::VK_NV_mesh_shader[] from the pipeline. This stage also includes <> and multisample resolve operations for framebuffer - attachments with a color format. + attachments with a color +ifdef::VK_KHR_depth_stencil_resolve[] + or depth/stencil +endif::VK_KHR_depth_stencil_resolve[] + format. * ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT specifies the execution of a compute shader. * [[synchronization-pipeline-stages-transfer]] @@ -735,12 +739,18 @@ include::../api/enums/VkAccessFlagBits.txt[] shading. * ename:VK_ACCESS_SHADER_READ_BIT specifies read access to a <>, +ifdef::VK_EXT_buffer_device_address[] + <>, +endif::VK_EXT_buffer_device_address[] <>, <>, <>, or <>. * ename:VK_ACCESS_SHADER_WRITE_BIT specifies write access to a <>, +ifdef::VK_EXT_buffer_device_address[] + <>, +endif::VK_EXT_buffer_device_address[] <>, or <>. * ename:VK_ACCESS_COLOR_ATTACHMENT_READ_BIT specifies read access to a @@ -752,9 +762,14 @@ ifdef::VK_EXT_blend_operation_advanced[] operations>>. endif::VK_EXT_blend_operation_advanced[] * ename:VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT specifies write access to a - <> during a <> or via certain <>. +ifndef::VK_KHR_depth_stencil_resolve[] + <> +endif::VK_KHR_depth_stencil_resolve[] +ifdef::VK_KHR_depth_stencil_resolve[] + <> +endif::VK_KHR_depth_stencil_resolve[] + during a <> or via certain + <>. * ename:VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT specifies read access to a <>, via <> or via certain @@ -3653,16 +3668,25 @@ framebuffer-space>> pipeline stages is current pname:framebuffer was created with, that is also referred to by one of the elements of the pname:pColorAttachments, pname:pResolveAttachments or pname:pDepthStencilAttachment members of - the sname:VkSubpassDescription instance that the current subpass was - created with + the sname:VkSubpassDescription instance +ifdef::VK_KHR_depth_stencil_resolve[] + or by the pname:pDepthStencilResolveAttachment member of the + sname:VkSubpassDescriptionDepthStencilResolveKHR structure +endif::VK_KHR_depth_stencil_resolve[] + that the current subpass was created with * [[VUID-vkCmdPipelineBarrier-oldLayout-01180]] If fname:vkCmdPipelineBarrier is called within a render pass instance, the pname:oldLayout and pname:newLayout members of any element of pname:pImageMemoryBarriers must: be equal to the pname:layout member of an element of the pname:pColorAttachments, pname:pResolveAttachments or pname:pDepthStencilAttachment members of the sname:VkSubpassDescription - instance that the current subpass was created with, that refers to the - same pname:image + instance +ifdef::VK_KHR_depth_stencil_resolve[] + or by the pname:pDepthStencilResolveAttachment member of the + sname:VkSubpassDescriptionDepthStencilResolveKHR structure +endif::VK_KHR_depth_stencil_resolve[] + that the current subpass was created with, that refers to the same + pname:image * [[VUID-vkCmdPipelineBarrier-oldLayout-01181]] If fname:vkCmdPipelineBarrier is called within a render pass instance, the pname:oldLayout and pname:newLayout members of an element of diff --git a/chapters/tessellation.txt b/chapters/tessellation.txt index 2d5aa98d7c..577af1c42f 100644 --- a/chapters/tessellation.txt +++ b/chapters/tessellation.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/textures.txt b/chapters/textures.txt index 7b40b68e2b..66937fa6d8 100644 --- a/chapters/textures.txt +++ b/chapters/textures.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/chapters/vertexpostproc.txt b/chapters/vertexpostproc.txt index b626003443..d0f2f9a370 100644 --- a/chapters/vertexpostproc.txt +++ b/chapters/vertexpostproc.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/checkLinks.py b/checkLinks.py index 92580c56f9..6e7b77ef61 100755 --- a/checkLinks.py +++ b/checkLinks.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2015-2018 The Khronos Group Inc. +# Copyright (c) 2015-2019 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. diff --git a/config/extension-highlighter.rb b/config/extension-highlighter.rb index 20abd12964..08091a76d7 100644 --- a/config/extension-highlighter.rb +++ b/config/extension-highlighter.rb @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/config/extension-highlighter/extension.rb b/config/extension-highlighter/extension.rb index e7eeb21b15..03c7c0ea47 100644 --- a/config/extension-highlighter/extension.rb +++ b/config/extension-highlighter/extension.rb @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. @@ -31,7 +31,7 @@ def initialize document, diff_extensions, data = nil, cursor = nil @diff_extensions = diff_extensions @tracking_target = nil end - + # This overrides the default preprocessor reader conditional logic such # that any extensions which need highlighting and are enabled have their # ifdefs left intact. @@ -90,7 +90,7 @@ def preprocess_conditional_directive directive, target, delimiter, text end return result end - + # Identical to preprocess_conditional_directive, but older versions of # Asciidoctor used a different name, so this is there to override the same # method in older versions. diff --git a/config/katex_replace.rb b/config/katex_replace.rb index 15d31a2e6d..4142421288 100644 --- a/config/katex_replace.rb +++ b/config/katex_replace.rb @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/config/katex_replace/extension.rb b/config/katex_replace/extension.rb index b01ea19ea7..0800c21053 100644 --- a/config/katex_replace/extension.rb +++ b/config/katex_replace/extension.rb @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/config/makeSubmit.py b/config/makeSubmit.py index 32cfcf6c42..e2bbad122b 100755 --- a/config/makeSubmit.py +++ b/config/makeSubmit.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/config/vu-to-json.rb b/config/vu-to-json.rb index 9c256db21e..2b371e10b2 100644 --- a/config/vu-to-json.rb +++ b/config/vu-to-json.rb @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/config/vu-to-json/extension.rb b/config/vu-to-json/extension.rb index ac66d558f6..a20e404778 100644 --- a/config/vu-to-json/extension.rb +++ b/config/vu-to-json/extension.rb @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. @@ -44,25 +44,25 @@ def process document, reader # FIXME in Reader#peek_line suggests that this doesn't work, the new lines are simply discarded. # So we just run over the new lines and do the replacement again. new_lines = extension_preprocessor_reader.read_lines().flat_map do | line | - + # Track whether we're in a VU block or not if line.start_with?(".Valid Usage") in_validusage = :about_to_enter # About to enter VU elsif in_validusage == :about_to_enter and line == '****' in_validusage = :inside # Entered VU block - extension_stack.each - elsif in_validusage == :inside and line == '****' + extension_stack.each + elsif in_validusage == :inside and line == '****' in_validusage = :outside # Exited VU block end - + # Track extensions outside of the VU if in_validusage == :outside and line.start_with?( 'ifdef::VK_', 'ifndef::VK_') and line.end_with?( '[]') extension_stack.push line elsif in_validusage == :outside and line.start_with?( 'endif::VK_') extension_stack.pop end - - if in_validusage == :inside and line == '****' + + if in_validusage == :inside and line == '****' # Write out the extension stack as bullets after this line returned_lines = [line] extension_stack.each do | extension | @@ -86,7 +86,7 @@ def process document, reader # Stash the detected vuids into a document attribute document.set_attribute('detected_vuid_list', detected_vuid_list.join("\n")) - + # Return a new reader after preprocessing Reader.new(new_lines) end @@ -110,7 +110,7 @@ def process document map['validation'] = {} # Need to find all valid usage blocks within a structure or function ref page section - + # Find all the open blocks (document.find_by context: :open).each do |openblock| # Filter out anything that's not a refpage @@ -143,7 +143,7 @@ def process document if parentid != parent puts "VU Extraction Treeprocessor: WARNING - Valid Usage statement VUID parent conflicts with parent ref page. Expected parent of '#{parent}' but VUID was '#{vuid}'." end - + # Delete the vuid from the detected vuid list, so we know it's been extracted successfully detected_vuid_list.delete(vuid) @@ -161,20 +161,20 @@ def process document else entry_section = extensions.join('+') end - + # Initialize the entry section if necessary if map['validation'][parent][entry_section] == nil map['validation'][parent][entry_section] = [] end - + # Check for duplicate entries if map['validation'][parent][entry_section].include? entry puts "VU Extraction Treeprocessor: WARNING - Valid Usage statement '#{entry}' is duplicated in the specification with VUID '#{vuid}'." end - + # Add the entry map['validation'][parent][entry_section] << entry - + else puts "VU Extraction Treeprocessor: WARNING - Valid Usage statement without a VUID found: " puts item.text @@ -184,10 +184,10 @@ def process document end end end - + end end - end + end # Print out a list of VUIDs that were not extracted if detected_vuid_list.length != 0 @@ -219,7 +219,7 @@ def process document puts 'It is likely that there is an invalid or malformed entry in the specification text,' puts 'see below error messages for details, and use their VUIDs and text to correlate them to their location in the specification.' puts - + errors.each do |error| puts error.to_s end diff --git a/config/vulkan-macros.rb b/config/vulkan-macros.rb index 7bbcdef928..634827d80e 100644 --- a/config/vulkan-macros.rb +++ b/config/vulkan-macros.rb @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/config/vulkan-macros/extension.rb b/config/vulkan-macros/extension.rb index 0c4ecb1b3e..9cda22c483 100644 --- a/config/vulkan-macros/extension.rb +++ b/config/vulkan-macros/extension.rb @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/copyright-ccby.txt b/copyright-ccby.txt index 64f7df810f..7e1ecec80a 100644 --- a/copyright-ccby.txt +++ b/copyright-ccby.txt @@ -1,4 +1,4 @@ -Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +Copyright (c) 2014-2019 Khronos Group. This work is licensed under a http://creativecommons.org/licenses/by/4.0/[Creative Commons Attribution 4.0 International License]. diff --git a/copyright-spec.txt b/copyright-spec.txt index 70beafbb19..6d43c3edfa 100644 --- a/copyright-spec.txt +++ b/copyright-spec.txt @@ -1,4 +1,4 @@ -Copyright 2014-2018 The Khronos Group Inc. +Copyright 2014-2019 The Khronos Group Inc. This Specification is protected by copyright laws and contains material proprietary to Khronos. Except as described by these terms, it or any diff --git a/fixupRef.py b/fixupRef.py index f834b51a30..6915b9bc69 100755 --- a/fixupRef.py +++ b/fixupRef.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/genRef.py b/genRef.py index 1beb3df238..17fac0faa4 100755 --- a/genRef.py +++ b/genRef.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. @@ -35,7 +35,7 @@ def isextension(name): # needed by all the standalone ref pages. def printCopyrightSourceComments(fp): - print('// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a', file=fp) + print('// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a', file=fp) print('// Creative Commons Attribution 4.0 International License; see', file=fp) print('// http://creativecommons.org/licenses/by/4.0/', file=fp) print('', file=fp) diff --git a/genRelease b/genRelease index 97c5a52e2e..686af4b469 100755 --- a/genRelease +++ b/genRelease @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/genspec.py b/genspec.py index 264eeb4a03..891075f5d6 100644 --- a/genspec.py +++ b/genspec.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h index 77da63783e..a3be4af6c4 100644 --- a/include/vulkan/vulkan.h +++ b/include/vulkan/vulkan.h @@ -2,7 +2,7 @@ #define VULKAN_H_ 1 /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_android.h b/include/vulkan/vulkan_android.h index 07aaeda28e..e70376c886 100644 --- a/include/vulkan/vulkan_android.h +++ b/include/vulkan/vulkan_android.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 72542c72ec..caeecd9bed 100644 --- a/include/vulkan/vulkan_core.h +++ b/include/vulkan/vulkan_core.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. @@ -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 96 +#define VK_HEADER_VERSION 97 #define VK_NULL_HANDLE 0 @@ -148,6 +148,7 @@ typedef enum VkResult { VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, VK_ERROR_FRAGMENTATION_EXT = -1000161000, VK_ERROR_NOT_PERMITTED_EXT = -1000174001, + VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = -1000244000, VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL, @@ -444,6 +445,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, @@ -460,7 +463,14 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, + VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = 1000244000, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = 1000244001, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000, + VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, @@ -1539,6 +1549,7 @@ typedef enum VkBufferCreateFlagBits { VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000010, VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkBufferCreateFlagBits; typedef VkFlags VkBufferCreateFlags; @@ -1557,6 +1568,7 @@ typedef enum VkBufferUsageFlagBits { VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400, + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 0x00020000, VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkBufferUsageFlagBits; typedef VkFlags VkBufferUsageFlags; @@ -6192,6 +6204,40 @@ typedef struct VkPhysicalDeviceFloatControlsPropertiesKHR { +#define VK_KHR_depth_stencil_resolve 1 +#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1 +#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve" + + +typedef enum VkResolveModeFlagBitsKHR { + VK_RESOLVE_MODE_NONE_KHR = 0, + VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = 0x00000001, + VK_RESOLVE_MODE_AVERAGE_BIT_KHR = 0x00000002, + VK_RESOLVE_MODE_MIN_BIT_KHR = 0x00000004, + VK_RESOLVE_MODE_MAX_BIT_KHR = 0x00000008, + VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkResolveModeFlagBitsKHR; +typedef VkFlags VkResolveModeFlagsKHR; + +typedef struct VkSubpassDescriptionDepthStencilResolveKHR { + VkStructureType sType; + const void* pNext; + VkResolveModeFlagBitsKHR depthResolveMode; + VkResolveModeFlagBitsKHR stencilResolveMode; + const VkAttachmentReference2KHR* pDepthStencilResolveAttachment; +} VkSubpassDescriptionDepthStencilResolveKHR; + +typedef struct VkPhysicalDeviceDepthStencilResolvePropertiesKHR { + VkStructureType sType; + void* pNext; + VkResolveModeFlagsKHR supportedDepthResolveModes; + VkResolveModeFlagsKHR supportedStencilResolveModes; + VkBool32 independentResolveNone; + VkBool32 independentResolve; +} VkPhysicalDeviceDepthStencilResolvePropertiesKHR; + + + #define VK_KHR_swapchain_mutable_format 1 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format" @@ -8926,6 +8972,72 @@ typedef struct VkPhysicalDeviceScalarBlockLayoutFeaturesEXT { #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" +#define VK_EXT_memory_budget 1 +#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 +#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" + +typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS]; + VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS]; +} VkPhysicalDeviceMemoryBudgetPropertiesEXT; + + + +#define VK_EXT_memory_priority 1 +#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1 +#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority" + +typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 memoryPriority; +} VkPhysicalDeviceMemoryPriorityFeaturesEXT; + +typedef struct VkMemoryPriorityAllocateInfoEXT { + VkStructureType sType; + const void* pNext; + float priority; +} VkMemoryPriorityAllocateInfoEXT; + + + +#define VK_EXT_buffer_device_address 1 +typedef uint64_t VkDeviceAddress; + +#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2 +#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address" + +typedef struct VkPhysicalDeviceBufferAddressFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferAddressFeaturesEXT; + +typedef struct VkBufferDeviceAddressInfoEXT { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferDeviceAddressInfoEXT; + +typedef struct VkBufferDeviceAddressCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceSize deviceAddress; +} VkBufferDeviceAddressCreateInfoEXT; + + +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfoEXT* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT( + VkDevice device, + const VkBufferDeviceAddressInfoEXT* pInfo); +#endif + #define VK_EXT_separate_stencil_usage 1 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage" @@ -8938,6 +9050,45 @@ typedef struct VkImageStencilUsageCreateInfoEXT { +#define VK_EXT_validation_features 1 +#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 1 +#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" + + +typedef enum VkValidationFeatureEnableEXT { + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, + VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, + VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, + VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1), + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationFeatureEnableEXT; + +typedef enum VkValidationFeatureDisableEXT { + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0, + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1, + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2, + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3, + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4, + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5, + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6, + VK_VALIDATION_FEATURE_DISABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT, + VK_VALIDATION_FEATURE_DISABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT, + VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1), + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationFeatureDisableEXT; + +typedef struct VkValidationFeaturesEXT { + VkStructureType sType; + const void* pNext; + uint32_t enabledValidationFeatureCount; + const VkValidationFeatureEnableEXT* pEnabledValidationFeatures; + uint32_t disabledValidationFeatureCount; + const VkValidationFeatureDisableEXT* pDisabledValidationFeatures; +} VkValidationFeaturesEXT; + + + #ifdef __cplusplus } #endif diff --git a/include/vulkan/vulkan_fuchsia.h b/include/vulkan/vulkan_fuchsia.h index e0ed5455ad..1c335fd386 100644 --- a/include/vulkan/vulkan_fuchsia.h +++ b/include/vulkan/vulkan_fuchsia.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_ios.h b/include/vulkan/vulkan_ios.h index a0924816d5..d221a9baad 100644 --- a/include/vulkan/vulkan_ios.h +++ b/include/vulkan/vulkan_ios.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_macos.h b/include/vulkan/vulkan_macos.h index ff0b701801..5d6b6aeb9a 100644 --- a/include/vulkan/vulkan_macos.h +++ b/include/vulkan/vulkan_macos.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_vi.h b/include/vulkan/vulkan_vi.h index 015166bfc6..3e37bab69a 100644 --- a/include/vulkan/vulkan_vi.h +++ b/include/vulkan/vulkan_vi.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_wayland.h b/include/vulkan/vulkan_wayland.h index 5ba0827aa3..33a22de3bd 100644 --- a/include/vulkan/vulkan_wayland.h +++ b/include/vulkan/vulkan_wayland.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_win32.h b/include/vulkan/vulkan_win32.h index 6a85409ebe..b9d63d47f4 100644 --- a/include/vulkan/vulkan_win32.h +++ b/include/vulkan/vulkan_win32.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_xcb.h b/include/vulkan/vulkan_xcb.h index ba03600602..f21290974a 100644 --- a/include/vulkan/vulkan_xcb.h +++ b/include/vulkan/vulkan_xcb.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_xlib.h b/include/vulkan/vulkan_xlib.h index e1d967e018..ce3d36ddcf 100644 --- a/include/vulkan/vulkan_xlib.h +++ b/include/vulkan/vulkan_xlib.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/include/vulkan/vulkan_xlib_xrandr.h b/include/vulkan/vulkan_xlib_xrandr.h index 117d01799e..25efb077f7 100644 --- a/include/vulkan/vulkan_xlib_xrandr.h +++ b/include/vulkan/vulkan_xlib_xrandr.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 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. diff --git a/installRelease b/installRelease index 6a559379d5..fbe1d994f4 100755 --- a/installRelease +++ b/installRelease @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/makeAllExts b/makeAllExts index 0d8d0577d3..c03dbf00c1 100755 --- a/makeAllExts +++ b/makeAllExts @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/makeExt b/makeExt index b6757d52f9..f5a8bf8467 100755 --- a/makeExt +++ b/makeExt @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/makeKHR b/makeKHR index 946dae97f9..ab114c1092 100755 --- a/makeKHR +++ b/makeKHR @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/man/copyright-ccby.txt b/man/copyright-ccby.txt index 49d605ca8c..20979c0be8 100644 --- a/man/copyright-ccby.txt +++ b/man/copyright-ccby.txt @@ -1,6 +1,6 @@ == Copyright -Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +Copyright (c) 2014-2019 Khronos Group. This work is licensed under a http://creativecommons.org/licenses/by/4.0/[Creative Commons Attribution 4.0 International License]. diff --git a/man/footer.txt b/man/footer.txt index 3747227930..0f686d4e82 100644 --- a/man/footer.txt +++ b/man/footer.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/promote.py b/promote.py index 8f207e9c11..0deb329e28 100755 --- a/promote.py +++ b/promote.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/refDesc.py b/refDesc.py index 2f9be29c39..396772f471 100644 --- a/refDesc.py +++ b/refDesc.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/reflib.py b/reflib.py index e8a29c3971..dc87ca6099 100644 --- a/reflib.py +++ b/reflib.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/reflow.py b/reflow.py index f34cfdd442..ed93a1df2a 100755 --- a/reflow.py +++ b/reflow.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/reflow_count.py b/reflow_count.py index 79fa45f28b..7baefae321 100644 --- a/reflow_count.py +++ b/reflow_count.py @@ -1,2 +1,2 @@ # The value to start tagging VU statements at, unless overridden by -nextvu -startVUID = 2598 +startVUID = 2607 diff --git a/registry.txt b/registry.txt index fc86b85ee3..aa51cc157e 100644 --- a/registry.txt +++ b/registry.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2013-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2013-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ @@ -1623,7 +1623,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ... */ diff --git a/scripts/findBalance.py b/scripts/findBalance.py index 49ed40552b..97f70ce6c0 100755 --- a/scripts/findBalance.py +++ b/scripts/findBalance.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/scripts/insertTags.py b/scripts/insertTags.py index 7499a529ab..c1cf68563b 100755 --- a/scripts/insertTags.py +++ b/scripts/insertTags.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2016-2018 The Khronos Group Inc. +# Copyright (c) 2016-2019 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. diff --git a/style/extensions.txt b/style/extensions.txt index 3d90e5114b..a244600d9d 100644 --- a/style/extensions.txt +++ b/style/extensions.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/style/markup.txt b/style/markup.txt index b419df8773..f21202bd39 100644 --- a/style/markup.txt +++ b/style/markup.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/style/misc.txt b/style/misc.txt index 39e59dfcdf..7e39c19964 100644 --- a/style/misc.txt +++ b/style/misc.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/style/naming.txt b/style/naming.txt index 60bbec557f..f15ac8308f 100644 --- a/style/naming.txt +++ b/style/naming.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/style/vuid.txt b/style/vuid.txt index a6ec83886f..5fd088ec2c 100644 --- a/style/vuid.txt +++ b/style/vuid.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/style/writing.txt b/style/writing.txt index 9bc4ac2121..c8ce2edbe3 100644 --- a/style/writing.txt +++ b/style/writing.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/styleguide.txt b/styleguide.txt index 7dbc04777d..f9fe8d4a9a 100644 --- a/styleguide.txt +++ b/styleguide.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/vkspec.txt b/vkspec.txt index 3265435f6c..d0dab28d78 100644 --- a/vkspec.txt +++ b/vkspec.txt @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a +// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ diff --git a/xml/Makefile b/xml/Makefile index dc33b3e8d5..fc40796aa1 100644 --- a/xml/Makefile +++ b/xml/Makefile @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/cgenerator.py b/xml/cgenerator.py index a3709700e6..ab0c77981d 100644 --- a/xml/cgenerator.py +++ b/xml/cgenerator.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/check_spec_links.py b/xml/check_spec_links.py index 8bbdd1954c..4d3960d47a 100755 --- a/xml/check_spec_links.py +++ b/xml/check_spec_links.py @@ -41,7 +41,7 @@ MISSING_VALIDITY_SUPPRESSIONS = set() ENTITIES_WITHOUT_VALIDITY = set( - ['VkBaseOutStructure', 'VkBaseInStructure', 'VkHdrMetadataEXT']) + ['VkBaseOutStructure', 'VkBaseInStructure']) # These are marked with the code: macro SYSTEM_TYPES = set(['void', 'char', 'float', 'size_t', 'uintptr_t', diff --git a/xml/docgenerator.py b/xml/docgenerator.py index 568445efb2..b100a7c36d 100644 --- a/xml/docgenerator.py +++ b/xml/docgenerator.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/extDependency.py b/xml/extDependency.py index adcf6a7958..6ac31eda1b 100755 --- a/xml/extDependency.py +++ b/xml/extDependency.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (c) 2017-2018 The Khronos Group Inc. +# Copyright (c) 2017-2019 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. diff --git a/xml/extensionStubSource.py b/xml/extensionStubSource.py index 92eee0c444..59b88de63b 100644 --- a/xml/extensionStubSource.py +++ b/xml/extensionStubSource.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/extensionmetadocgenerator.py b/xml/extensionmetadocgenerator.py index 23dd3e584f..06b342abbf 100644 --- a/xml/extensionmetadocgenerator.py +++ b/xml/extensionmetadocgenerator.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/generator.py b/xml/generator.py index a0f79ac2fa..fbd4f8d4c7 100644 --- a/xml/generator.py +++ b/xml/generator.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/genvk.py b/xml/genvk.py index 72c6c8fc0d..706b8e3f88 100755 --- a/xml/genvk.py +++ b/xml/genvk.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. @@ -90,7 +90,7 @@ def makeGenOpts(args): # Copyright text prefixing all headers (list of strings). prefixStrings = [ '/*', - '** Copyright (c) 2015-2018 The Khronos Group Inc.', + '** Copyright (c) 2015-2019 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.', diff --git a/xml/hostsyncgenerator.py b/xml/hostsyncgenerator.py index 34b66b56cd..b6afe106de 100644 --- a/xml/hostsyncgenerator.py +++ b/xml/hostsyncgenerator.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/indexExt.py b/xml/indexExt.py index 0c886a9db2..3bd5cf3875 100755 --- a/xml/indexExt.py +++ b/xml/indexExt.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2017-2018 The Khronos Group Inc. +# Copyright (c) 2017-2019 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. diff --git a/xml/pygenerator.py b/xml/pygenerator.py index c603503fb0..9202cd9412 100644 --- a/xml/pygenerator.py +++ b/xml/pygenerator.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/realign.py b/xml/realign.py index 8108717549..20813c3083 100755 --- a/xml/realign.py +++ b/xml/realign.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/reg.py b/xml/reg.py index 5d25bcae65..f0c27a7e78 100755 --- a/xml/reg.py +++ b/xml/reg.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/registry.rnc b/xml/registry.rnc index 5ec5d47799..4b6379966a 100644 --- a/xml/registry.rnc +++ b/xml/registry.rnc @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/validitygenerator.py b/xml/validitygenerator.py index 5c88f8a7e6..5aa3798cc7 100644 --- a/xml/validitygenerator.py +++ b/xml/validitygenerator.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2013-2018 The Khronos Group Inc. +# Copyright (c) 2013-2019 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. diff --git a/xml/vk.xml b/xml/vk.xml index d60f41187f..18e4d02905 100644 --- a/xml/vk.xml +++ b/xml/vk.xml @@ -1,7 +1,7 @@ -Copyright (c) 2015-2018 The Khronos Group Inc. +Copyright (c) 2015-2019 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. @@ -146,7 +146,7 @@ server. // Vulkan 1.1 version number #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 96 +#define VK_HEADER_VERSION 97 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; @@ -170,6 +170,7 @@ server. typedef uint32_t VkBool32; typedef uint32_t VkFlags; typedef uint64_t VkDeviceSize; + typedef uint64_t VkDeviceAddress; Basic C types, pulled in via vk_platform.h @@ -308,6 +309,7 @@ server. typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; typedef VkFlags VkDescriptorBindingFlagsEXT; typedef VkFlags VkConditionalRenderingFlagsEXT; + typedef VkFlags VkResolveModeFlagsKHR; typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; @@ -464,6 +466,7 @@ server. + @@ -486,6 +489,8 @@ server. + + @@ -1728,6 +1733,14 @@ server. uint32_t disabledValidationCheckCountNumber of validation checks to disable const VkValidationCheckEXT* pDisabledValidationChecksValidation checks to disable + + VkStructureType sTypeMust be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT + const void* pNext + uint32_t enabledValidationFeatureCountNumber of validation features to enable + const VkValidationFeatureEnableEXT* pEnabledValidationFeaturesValidation features to enable + uint32_t disabledValidationFeatureCountNumber of validation features to disable + const VkValidationFeatureDisableEXT* pDisabledValidationFeaturesValidation features to disable + VkStructureType sType const void* pNext @@ -2462,15 +2475,15 @@ server. VkStructureType sType const void* pNext From SMPTE 2086 - VkXYColorEXT displayPrimaryRedDisplay primary's Red - VkXYColorEXT displayPrimaryGreenDisplay primary's Green - VkXYColorEXT displayPrimaryBlueDisplay primary's Blue - VkXYColorEXT whitePointDisplay primary's Blue - float maxLuminanceDisplay maximum luminance - float minLuminanceDisplay minimum luminance + VkXYColorEXT displayPrimaryRedDisplay primary's Red + VkXYColorEXT displayPrimaryGreenDisplay primary's Green + VkXYColorEXT displayPrimaryBlueDisplay primary's Blue + VkXYColorEXT whitePointDisplay primary's Blue + float maxLuminanceDisplay maximum luminance + float minLuminanceDisplay minimum luminance From CTA 861.3 - float maxContentLightLevelContent maximum luminance - float maxFrameAverageLightLevel + float maxContentLightLevelContent maximum luminance + float maxFrameAverageLightLevel uint64_t refreshDurationNumber of nanoseconds from the start of one refresh cycle to the next @@ -2513,7 +2526,7 @@ server. const void* pNext VkBool32 viewportWScalingEnable uint32_t viewportCount - const VkViewportWScalingNV* pViewportWScalings + const VkViewportWScalingNV* pViewportWScalings VkViewportCoordinateSwizzleNV x @@ -3325,6 +3338,21 @@ server. VkPipelineStageFlagBits stage void* pCheckpointMarker + + VkStructureType sType + void* pNext + VkResolveModeFlagsKHR supportedDepthResolveModessupported depth resolve modes + VkResolveModeFlagsKHR supportedStencilResolveModessupported stencil resolve modes + VkBool32 independentResolveNonedepth and stencil resolve modes can be set independently if one of them is none + VkBool32 independentResolvedepth and stencil resolve modes can be set independently + + + VkStructureType sType + const void* pNext + VkResolveModeFlagBitsKHR depthResolveModedepth resolve mode + VkResolveModeFlagBitsKHR stencilResolveModestencil resolve mode + const VkAttachmentReference2KHR* pDepthStencilResolveAttachmentdepth/stencil resolve attachment + VkStructureType sType const void* pNext @@ -3647,6 +3675,39 @@ server. void* pNext VkBool32 scalarBlockLayout + + VkStructureType sType + void* pNext + VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS] + VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS] + + + VkStructureType sType + void* pNext + VkBool32 memoryPriority + + + VkStructureType sType + const void* pNext + float priority + + + VkStructureType sType + void* pNext + VkBool32 bufferDeviceAddress + VkBool32 bufferDeviceAddressCaptureReplay + VkBool32 bufferDeviceAddressMultiDevice + + + VkStructureType sType + const void* pNext + VkBuffer buffer + + + VkStructureType sType + const void* pNext + VkDeviceSize deviceAddress + Vulkan enumerant (token) definitions @@ -4535,6 +4596,21 @@ server. Placeholder for validation enums to be defined for VK_EXT_Validation_flags extension + + + + Placeholder for validation feature enable enums to be defined for VK_EXT_validation_features extension + + + + + + + + + + Placeholder for validation feature disable enums to be defined for VK_EXT_validation_features extension + @@ -4764,6 +4840,13 @@ server. + + + + + + + @@ -5151,7 +5234,7 @@ server. VkDeviceSize stride VkQueryResultFlags flags - + VkResult vkCreateBuffer VkDevice device const VkBufferCreateInfo* pCreateInfo @@ -7011,6 +7094,11 @@ server. VkImage image VkImageDrmFormatModifierPropertiesEXT* pProperties + + VkDeviceAddress vkGetBufferDeviceAddressEXT + VkDevice device + const VkBufferDeviceAddressInfoEXT* pInfo + @@ -7847,7 +7935,8 @@ server. - + + @@ -7865,6 +7954,7 @@ server. + @@ -9888,10 +9978,15 @@ server. - + - - + + + + + + + @@ -10173,16 +10268,22 @@ server. - + - - + + + + - + - - + + + + + + @@ -10215,10 +10316,20 @@ server. - + - - + + + + + + + + + + + + @@ -10235,10 +10346,12 @@ server. - + - - + + + + @@ -10247,5 +10360,11 @@ server. + + + + + +