Vulkan-Docs/appendices/VK_KHR_shared_presentable_i...

152 lines
4.7 KiB
Plaintext
Raw Normal View History

// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a
Change log for June 24, 2017 Vulkan 1.0.53 spec update: * Bump API patch number and header version number to 53 for this update. Github Issues: Internal Issues: * Clarify mappings of coordinates for mutable, compatible image views in slink:VkImageViewCreateInfo (internal issue 815). * Make ename:VK_BIND_SFR_BIT require a logical device with multiple physical devices, so that standard sparse image block dimensions are only required on systems that support multi-GPU (internal issue 835). * Convert all files from use of // refBegin .. // refEnd comments to delimit ref pages, to use of open blocks, and update style guide accordingly (internal issue 839). * Add valid usage for slink:VkWriteDescriptorSet when performing updates to a ename:VK_STORAGE_IMAGE descriptor with layout ename:VK_IMAGE_LAYOUT_GENERAL. * Add a hack to the validity generator script to support an odd interaction between flink:vkCmdFillBuffer and an extension (internal issue 853). * Remove redundant text describing slink:VkBufferCreateInfo::pname:usage, which was already covered by implicit valid usage (internal issue 854). * Update implicit validity generator script to properly handle the pname:sType and pname:pNext members of "returnedonly" structures (internal issue 874). * Note that slink:VkApplicationInfo::pname:pApplicationName & slink:VkApplicationInfo::pname:pEngineName are optional, and add missing implicit valid usage statements for flink:vkDestroyInstance. * Added missing valid usage for flink:vkCmdWriteTimestamp to require a timestamp query pool. * Simplify and/or split "`non-atomic`" valid usage statements. New Extensions: * `VK_AMD_gpu_shader_int16` * `VK_EXT_blend_operation_advanced` * `VK_EXT_sampler_filter_minmax` * `VK_NV_framebuffer_mixed_samples` ----------------------------------------------------- Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release combines both change sets. ----------------------------------------------------- Change log for June 13, 2017 Vulkan 1.0.52 spec update: * Bump API patch number and header version number to 52 for this update. Github Issues: Internal Issues: * Clarify behavior when non-coherent memory has <<memory-device-unmap-does-not-flush, not been flushed before being unmapped>> (internal issue 819). * Fix description of code:WorkgroupSize builtin to note it decorates an object, not a variable (internal issue 836). * Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style equations are rendered properly (internal issue 845). * Add language to the "`Extension Handles, Objects, Enums, and Typedefs`" section of the Procedures and Conventions document stating that any new handle type requires a corresponding entry in the elink:VkObjectType enumerated type (internal issue 856). * Update style guide to use slink macro for Vulkan handle type names, and define narrow conditions under which to use the *name and *text macros instead of *link (internal issue 886). * Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>> extension on VK_KHX_device_group_creation to +vk.xml+ and the extension appendix. * Change the copyright on Vulkan specification asciidoc *source* files to CC-BY 4.0, and update the proprietary Khronos copyright applied to the generated *output* formats (internal issue 327). This enables broader re-use and modification of the Vulkan specification sources, while not affecting the Reciprocal IP License between Vulkan Adopters and Working Group Members. New Extensions: * `VK_NV_fill_rectangle` * `VK_NV_fragment_coverage_to_color`
2017-06-27 02:32:10 +00:00
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
Change log for September 5, 2017 Vulkan 1.0.60 spec update: * Bump API patch number and header version number to 60 for this update. Github Issues: * Document that <<queries-timestamps, Timestamp Queries>> can only be meaningfully compared when they are written from the same queue (public issue 216). * Document that the `<extension>` tag `type` attribute is required for non-disabled extensions (derived from, but does not close public issue 354). * Clean up registry schema length attribute descriptions to be consistent and correct (public issue 555). Internal Issues: * Replace as much of the hand-written extension appendix metadata as possible with asciidoc includes generated from corresponding attributes of +vk.xml+, and enhance the style guide to match. This avoids inconsistencies between +vk.xml+ and the appendices, and produces a more uniform style (internal issue 137). * Remove the generated extDependency.{py,sh} files from the tree and create them dynamically on demand instead, reducing merge conflicts (internal issue 713). * Add a prototype tool for generating in-place difference markup for sections guarded by asciidoc conditionals, and new syntax for open blocks to support it (internal issue 833). * Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle types to the same physical device in the slink:VkPhysicalDeviceIDPropertiesKHR, flink:VkImportMemoryWin32HandleInfoKHR, slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR, slink:VkImportSemaphoreWin32HandleInfoKHR, slink:VkImportSemaphoreFdInfoKHR <<external-memory-handle-types-compatibility, External memory handle types compatibility>>, <<external-semaphore-handle-types-compatibility, External semaphore handle types compatibility>>, and <<external-fence-handle-types-compatibility, External fence handle types compatibility>> sections (internal issue 956). Other Issues: * Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there is an interaction, but not a strict dependency), and add a new `extension` attribute to the `<require` XML tag to allow classifying a subset of interfaces of an extension as requiring another extension. Update the registry schema and documentation accordingly. New Extensions: * `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask` GLSL extension) * `VK_EXT_sample_locations` * `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
include::meta/VK_KHR_shared_presentable_image.txt[]
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
*Last Modified Date*::
2017-03-20
*IP Status*::
No known IP claims.
*Contributors*::
- Alon Or-bach, Samsung Electronics
- Ian Elliott, Google
- Jesse Hall, Google
- Pablo Ceballos, Google
- Chris Forbes, Google
- Jeff Juliano, NVIDIA
- James Jones, NVIDIA
- Daniel Rakos, AMD
- Tobias Hector, Imagination Technologies
- Graham Connor, Imagination Technologies
- Michael Worcester, Imagination Technologies
- Cass Everitt, Oculus
- Johannes Van Waveren, Oculus
Change log for January 5, 2018 Vulkan 1.0.67 spec update: * Bump API patch number and header version number to 67 for this update. * Update copyright dates to 2018 Github Issues: * Fix texture lookup functions in `GL_KHR_vulkan_glsl` specification (public pull request 363). * Clarify the state waited semaphores are left in when a call to flink:vkQueuePresentKHR fails (public issue 572). * Cleanup descriptions of slink:VkObjectTablePushConstantEntryNVX and slink:VkObjectTableDescriptorSetEntryNVX (public issue 583) * Remove redundant flink:vkCmdSetDiscardRectangleEXT valid usage statements (public pull 586). * Make dynamic state array length valid usage statements implicit for flink:vkCmdSetViewportWScalingNV, flink:vkCmdSetDiscardRectangleEXT, and flink:vkCmdSetViewport (public pull 589). * Clarify meaning of window extent (0,0) in slink:VkSwapchainKHR for the Windows and X11 platforms, in their respective extensions (public issue 590). * Allow flink:vkGetPastPresentationTimingGOOGLE to return ename:VK_INCOMPLETE (public issue 604). * Add synchronization valid usage statements to flink:vkAcquireNextImage (public pull 611). * Fix some broken external links and internal xrefs (public pull 613). * Clean up slink:VkViewport valid usage statements in the presence or absence of relevant extensions (public pull 623). * Remove ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR token from VK_KHR_maintenance2 from the non-extension VU path for slink:VkGraphicsPipelineCreateInfo (public issue 628). * Miscellaneous minor markup fixes - extension name strings (public pull 631), Notes (pull 633), queue names emitted by generator scripts (pull 634), block formatting in slink:VkDescriptorUpdateTemplateEntryKHR (pull 635), ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG (pull 641), quotes and apostrophes (pull 643), * Miscellaneous minor grammar fixes (public pull 644). * Fix markup macros so usage like ptext:*Src* works (public pull 647). Internal Issues: * Clarify in the `VK_KHR_surface` and `VK_KHR_swapchain` extensions that parameter combinations which aren't supported for normal images are also unsupported for presentable images, even if the parameter values are individually supported as reported by the surface capability queries (internal issue 1029). * Fixed XML typo in the valid value field of the pname:sType member of slink:VkPhysicalDeviceExternalMemoryHostPropertiesEXT (internal issue 1100). Other Issues: * Add memory semantics validity rules to the <<spirvenv-module-validation, Validation Rules within a Module>> section of the SPIR-V environment appendix, and specify that sequentiality consistency is not supported. This forbids certain cases like "`Load+Release`" that we don't expect to ever be meaningful. * Document mapping of OpenGL Shading Language barriers to SPIR-V scope and semantics in the `GL_KHR_vulkan_glsl` specification. New Extensions: * `VK_EXT_conservative_rasterization`
2018-01-06 01:39:15 +00:00
This extension extends `<<VK_KHR_swapchain>>` to enable creation of a shared
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
presentable image.
This allows the application to use the image while the presention engine is
accessing it, in order to reduce the latency between rendering and
presentation.
=== New Object Types
None.
=== New Enum Constants
Change log for June 4, 2017 Vulkan 1.0.51 spec update: * Bump API patch number and header version number to 51 for this update. Github Issues: * Add Valid Usage statement to flink:vkCmdResolveImage to require that source and destination image formats match (public issue 492). * Specify that a code:char* parameter must: be a valid null-terminated string in the <<fundamentals-implicit-validity, implicit valid usage>> section (public issue 494). * Removed unnecessary VU for slink:VkPhysicalDeviceFeatures which is covered by ename:VK_ERROR_FEATURE_NOT_PRESENT already (public issue 496). * Clarify valid usage of pname:pQueueFamilyIndices in slink:VkBufferCreateInfo, slink:VkImageCreateInfo, and slink:VkSwapchainCreateInfoKHR (public issue 501). * Document that dependencies of enabled extensions must also be enabled in the <<extended-functionality-extensions-dependencies, Extension Dependencies>> section (public issue 507). Internal Issues: * Change slink:VkMappedMemoryRange valid usage to allow pname:offset + pname:size == size of the allocation. Also, if ename:VK_WHOLE_SIZE is used, require the end of the mapping to be aligned to a multiple of pname:nonCoherentAtomSize (internal issue 611). * Add issue to `VK_KHR_win32_surface` about reusing window objects from a different graphics API or Vulkan ICD (internal issue 639). * Require locations on user in/out in `GL_KHR_vulkan_glsl` (internal issue 783). * Added version info to the json validation output, and updated the schema to match (internal issue 838). * Restructure enumerated type descriptions separately from the command or structure they are used in, allowing better reference page generation (internal issue 841). * Re-sort extension appendices to be in alphabetical order within each author ID section. * Fix enum naming and clarify behavior for `VK_NVX_device_generated_commands` extension. New Extensions:
2017-06-05 03:48:43 +00:00
* Extending elink:VkPresentModeKHR:
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
** ename:VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR
** ename:VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
Change log for June 4, 2017 Vulkan 1.0.51 spec update: * Bump API patch number and header version number to 51 for this update. Github Issues: * Add Valid Usage statement to flink:vkCmdResolveImage to require that source and destination image formats match (public issue 492). * Specify that a code:char* parameter must: be a valid null-terminated string in the <<fundamentals-implicit-validity, implicit valid usage>> section (public issue 494). * Removed unnecessary VU for slink:VkPhysicalDeviceFeatures which is covered by ename:VK_ERROR_FEATURE_NOT_PRESENT already (public issue 496). * Clarify valid usage of pname:pQueueFamilyIndices in slink:VkBufferCreateInfo, slink:VkImageCreateInfo, and slink:VkSwapchainCreateInfoKHR (public issue 501). * Document that dependencies of enabled extensions must also be enabled in the <<extended-functionality-extensions-dependencies, Extension Dependencies>> section (public issue 507). Internal Issues: * Change slink:VkMappedMemoryRange valid usage to allow pname:offset + pname:size == size of the allocation. Also, if ename:VK_WHOLE_SIZE is used, require the end of the mapping to be aligned to a multiple of pname:nonCoherentAtomSize (internal issue 611). * Add issue to `VK_KHR_win32_surface` about reusing window objects from a different graphics API or Vulkan ICD (internal issue 639). * Require locations on user in/out in `GL_KHR_vulkan_glsl` (internal issue 783). * Added version info to the json validation output, and updated the schema to match (internal issue 838). * Restructure enumerated type descriptions separately from the command or structure they are used in, allowing better reference page generation (internal issue 841). * Re-sort extension appendices to be in alphabetical order within each author ID section. * Fix enum naming and clarify behavior for `VK_NVX_device_generated_commands` extension. New Extensions:
2017-06-05 03:48:43 +00:00
* Extending elink:VkImageLayout:
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
** ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
Change log for June 4, 2017 Vulkan 1.0.51 spec update: * Bump API patch number and header version number to 51 for this update. Github Issues: * Add Valid Usage statement to flink:vkCmdResolveImage to require that source and destination image formats match (public issue 492). * Specify that a code:char* parameter must: be a valid null-terminated string in the <<fundamentals-implicit-validity, implicit valid usage>> section (public issue 494). * Removed unnecessary VU for slink:VkPhysicalDeviceFeatures which is covered by ename:VK_ERROR_FEATURE_NOT_PRESENT already (public issue 496). * Clarify valid usage of pname:pQueueFamilyIndices in slink:VkBufferCreateInfo, slink:VkImageCreateInfo, and slink:VkSwapchainCreateInfoKHR (public issue 501). * Document that dependencies of enabled extensions must also be enabled in the <<extended-functionality-extensions-dependencies, Extension Dependencies>> section (public issue 507). Internal Issues: * Change slink:VkMappedMemoryRange valid usage to allow pname:offset + pname:size == size of the allocation. Also, if ename:VK_WHOLE_SIZE is used, require the end of the mapping to be aligned to a multiple of pname:nonCoherentAtomSize (internal issue 611). * Add issue to `VK_KHR_win32_surface` about reusing window objects from a different graphics API or Vulkan ICD (internal issue 639). * Require locations on user in/out in `GL_KHR_vulkan_glsl` (internal issue 783). * Added version info to the json validation output, and updated the schema to match (internal issue 838). * Restructure enumerated type descriptions separately from the command or structure they are used in, allowing better reference page generation (internal issue 841). * Re-sort extension appendices to be in alphabetical order within each author ID section. * Fix enum naming and clarify behavior for `VK_NVX_device_generated_commands` extension. New Extensions:
2017-06-05 03:48:43 +00:00
* Extending elink:VkStructureType:
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
** ename:VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
=== New Enums
None.
=== New Structures
* slink:VkSharedPresentSurfaceCapabilitiesKHR
=== New Functions
* flink:vkGetSwapchainStatusKHR
=== Issues
1) Should we allow a Vulkan WSI swapchain to toggle between normal usage and
shared presentation usage?
*RESOLVED*: No.
WSI swapchains are typically recreated with new properties instead of having
their properties changed.
This can also save resources, assuming that fewer images are needed for
shared presentation, and assuming that most VR applications do not need to
switch between normal and shared usage.
2) Should we have a query for determining how the presentation engine
refresh is triggered?
*RESOLVED*: Yes.
This is done via which presentation modes a surface supports.
3) Should the object representing a shared presentable image be an extension
of a slink:VkSwapchainKHR or a separate object?
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
*RESOLVED*: Extension of a swapchain due to overlap in creation properties
and to allow common functionality between shared and normal presentable
images and swapchains.
4) What should we call the extension and the new structures it creates?
*RESOLVED*: Shared presentable image / shared present.
5) Should the pname:minImageCount and pname:presentMode values of the
slink:VkSwapchainCreateInfoKHR be ignored, or required to be compatible
values?
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
*RESOLVED*: pname:minImageCount must be set to 1, and pname:presentMode
should be set to either ename:VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or
ename:VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR.
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
6) What should the layout of the shared presentable image be?
*RESOLVED*: After acquiring the shared presentable image, the application
must transition it to the ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR layout
prior to it being used.
2018-11-04 16:38:52 +00:00
After this initial transition, any image usage that was requested during
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
swapchain creation can: be performed on the image without layout transitions
being performed.
7) Do we need a new API for the trigger to refresh new content?
*RESOLVED*: flink:vkQueuePresentKHR to act as API to trigger a refresh, as
will allow combination with other compatible extensions to
flink:vkQueuePresentKHR.
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
8) How should an application detect a ename:VK_ERROR_OUT_OF_DATE_KHR error
on a swapchain using the ename:VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
present mode?
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
*RESOLVED*: Introduce flink:vkGetSwapchainStatusKHR to allow applications to
query the status of a swapchain using a shared presentation mode.
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
9) What should subsequent calls to flink:vkQueuePresentKHR for
ename:VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR swapchains be defined to
do?
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
*RESOLVED*: State that implementations may use it as a hint for updated
content.
10) Can the ownership of a shared presentable image be transferred to a
different queue?
*RESOLVED*: No.
It is not possible to transfer ownership of a shared presentable image
obtained from a swapchain created using ename:VK_SHARING_MODE_EXCLUSIVE
after it has been presented.
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
11) How should flink:vkQueueSubmit behave if a command buffer uses an image
from an ename:VK_ERROR_OUT_OF_DATE_KHR swapchain?
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
*RESOLVED*: flink:vkQueueSubmit is expected to return the
ename:VK_ERROR_DEVICE_LOST error.
Change log for May 12, 2017 Vulkan 1.0.49 spec update: * Bump API patch number and header version number to 49 for this update. Github Issues: * Modify reference page extraction script to make internal links to spec anchors refer to the core specification instead of being dangling links (public issue 455). * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly published StorageBuffer class (public issue 466). * Both flink:vkEnumerateInstanceExtensionProperties and flink:vkEnumerateDeviceExtensionProperties return ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an application providing a layer name that wasn't returned by ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). * The specification for flink:VkApplicationInfo::apiVersion says that the driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that pname:apiVersion specifies a non-supported version. That means that the valid usage should not also state that, and so the VU statement is removed. The VU had language about "`an effective substitute`" that would have been lost, and so it was moved to the pname:apiVersion description (public issue 488). Internal Issues: * Modify implicit validity generator script to assign asciidoc anchors to all valid usage statements it generates, and reflow.py script to insert Valid Usage ID (VUID) tags into the specification source files for explicit valid usage statements. This has no semantic effects on the specification, but will support the validation layer's detection of valid usage violations and allow it to link into the corresponding part of the specification (internal issue 583). * Assign VUID tags to all explicit VU statements and document the process and tag format in the style guide (internal issue 583). * Clarify the rules of whether to structure new functionality as instance extensions, device extensions, or both in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (internal issue 749). * Require that SPIR-V run-time arrays are only used with the code:BufferBlock decoration (internal issue 750). * Fix implicit and explicit valid usage statements for slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> section (internal issue 770). * Clarify that disabling depth testing also disables depth writes in the <<fragops-ds-state, Depth and Stencil Operations>> section (internal issue 775). * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual imageLayout at the time the image is accessed. This was in the spec text, but needed an associated valid usage statement. * Note that only 32-bit atomic operations are supported in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Note that code:UniformConstant variables must not have initializers in the <<spirvenv-module-validation, Validation Rules within a Module>> section. * Add a new elink:VkObjectType enumeration to the core API, promoted from elink:VkDebugObjectTypeEXT, since it is used for much more than just the debug_report extension. New Extensions: * `VK_KHR_get_surface_capabilities2` * `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
12) Can Vulkan provide any guarantee on the order of rendering, to enable
beam chasing?
*RESOLVED*: This could be achieved via use of render passes to ensure strip
rendering.
=== Version History
* Revision 1, 2017-03-20 (Alon Or-bach)
- Internal revisions