mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-21 18:48:12 +00:00
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`
This commit is contained in:
parent
1d38929270
commit
b7b1c3a65d
@ -8,6 +8,73 @@ public pull requests that have been accepted.
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
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`
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Change log for November 27, 2017 Vulkan 1.0.66 spec update:
|
||||
|
||||
* Bump API patch number and header version number to 66 for this update.
|
||||
|
@ -33,8 +33,8 @@ Status
|
||||
|
||||
Version
|
||||
|
||||
Last Modified Date: 25-Oct-2017
|
||||
Revision: 43
|
||||
Last Modified Date: 12-Dec-2017
|
||||
Revision: 44
|
||||
|
||||
Number
|
||||
|
||||
@ -426,18 +426,56 @@ Overview
|
||||
|
||||
max_vertices -> OutputVertices
|
||||
|
||||
Mapping of other instructions
|
||||
Mapping of barriers
|
||||
|
||||
% -> OpUMod/OpSMod
|
||||
mod() -> OpFMod
|
||||
N/A -> OpSRem/OpFRem
|
||||
barrier() (compute) -> OpControlBarrier(/*Execution*/Workgroup,
|
||||
/*Memory*/Workgroup,
|
||||
/*Semantics*/AcquireRelease |
|
||||
WorkgroupMemory)
|
||||
|
||||
barrier() (tess control) -> OpControlBarrier(/*Execution*/Workgroup,
|
||||
/*Memory*/Invocation,
|
||||
/*Semantics*/None)
|
||||
|
||||
memoryBarrier() -> OpMemoryBarrier(/*Memory*/Device,
|
||||
/*Semantics*/AcquireRelease |
|
||||
UniformMemory |
|
||||
WorkgroupMemory |
|
||||
ImageMemory)
|
||||
|
||||
memoryBarrierBuffer() -> OpMemoryBarrier(/*Memory*/Device,
|
||||
/*Semantics*/AcquireRelease |
|
||||
UniformMemory)
|
||||
|
||||
memoryBarrierShared() -> OpMemoryBarrier(/*Memory*/Device,
|
||||
/*Semantics*/AcquireRelease |
|
||||
WorkgroupMemory)
|
||||
|
||||
memoryBarrierImage() -> OpMemoryBarrier(/*Memory*/Device,
|
||||
/*Semantics*/AcquireRelease |
|
||||
ImageMemory)
|
||||
|
||||
groupMemoryBarrier() -> OpMemoryBarrier(/*Memory*/Workgroup,
|
||||
/*Semantics*/AcquireRelease |
|
||||
UniformMemory |
|
||||
WorkgroupMemory |
|
||||
ImageMemory)
|
||||
|
||||
Mapping of atomics
|
||||
|
||||
all atomic builtin functions -> Semantics = None(Relaxed)
|
||||
atomicExchange() -> OpAtomicExchange
|
||||
imageAtomicExchange() -> OpAtomicExchange
|
||||
atomicCompSwap() -> OpAtomicCompareExchange
|
||||
imageAtomicCompSwap() -> OpAtomicCompareExchange
|
||||
N/A -> OpAtomicCompareExchangeWeak
|
||||
|
||||
Mapping of other instructions
|
||||
|
||||
% -> OpUMod/OpSMod
|
||||
mod() -> OpFMod
|
||||
N/A -> OpSRem/OpFRem
|
||||
|
||||
Changes to Chapter 1 of the OpenGL Shading Language Specification
|
||||
|
||||
Change the last paragraph of "1.3 Overview": "The OpenGL Graphics System
|
||||
@ -1404,6 +1442,8 @@ Revision History
|
||||
|
||||
Rev. Date Author Changes
|
||||
---- ----------- ------- --------------------------------------------
|
||||
44 12-Dec-2017 jbolz Document mapping of barrier/atomic ops to
|
||||
SPIR-V
|
||||
43 25-Oct-2017 JohnK remove the already deprecated noise functions
|
||||
42 07-Jul-2017 JohnK arrays of buffers consume only one binding
|
||||
41 05-Jul-2017 JohnK allow std430 on push_constant declarations
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2014-2017 The Khronos Group Inc.
|
||||
# Copyright (c) 2014-2018 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.
|
||||
@ -92,7 +92,7 @@ VERBOSE =
|
||||
# $(EXTENSIONS))
|
||||
# ADOCOPTS options for asciidoc->HTML5 output
|
||||
NOTEOPTS = -a editing-notes -a implementation-guide
|
||||
SPECREVISION = 1.0.66
|
||||
SPECREVISION = 1.0.67
|
||||
# Spell out ISO 8601 format as not all date commands support --rfc-3339
|
||||
SPECDATE = $(shell echo `date -u "+%Y-%m-%d %TZ"`)
|
||||
|
||||
|
@ -44,8 +44,7 @@ None.
|
||||
|
||||
=== New SPIR-V Capabilities
|
||||
|
||||
* <<spirvenv-capabilities-table-fragmentmaskamd,
|
||||
code:FragmentMaskAMD>>
|
||||
* <<spirvenv-capabilities-table-fragmentmaskamd, code:FragmentMaskAMD>>
|
||||
|
||||
=== New Structures
|
||||
|
||||
|
@ -0,0 +1,74 @@
|
||||
include::meta/VK_EXT_conservative_rasterization.txt[]
|
||||
|
||||
*Last Modified Data*::
|
||||
2017-08-28
|
||||
*Contributors*::
|
||||
- Daniel Koch, NVIDIA
|
||||
- Daniel Rakos, AMD
|
||||
- Jeff Bolz, NVIDIA
|
||||
- Slawomir Grajewski, Intel
|
||||
- Stu Smith, Imagination Technologies
|
||||
|
||||
This extension adds a new rasterization mode called conservative
|
||||
rasterization.
|
||||
There are two modes of conservative rasterization; overestimation and
|
||||
underestimation.
|
||||
|
||||
When overestimation is enabled, if any part of the primitive, including its
|
||||
edges, covers any part of the rectangular pixel area, including its sides,
|
||||
then a fragment is generated with all coverage samples turned on.
|
||||
This extension allows for some variation in implementations by accounting
|
||||
for differences in overestimation, where the generating primitive size is
|
||||
increased at each of its edges by some sub-pixel amount to further increase
|
||||
conservative pixel coverage.
|
||||
Implementations can allow the application to specify an extra overestimation
|
||||
beyond the base overestimation the implementation already does.
|
||||
It also allows implementations to either cull degenerate primitives or
|
||||
rasterize them.
|
||||
|
||||
When underestimation is enabled, fragments are only generated if the
|
||||
rectangular pixel area is fully covered by the generating primitive.
|
||||
If supported by the implementation, when a pixel rectangle is fully covered
|
||||
the fragment shader input variable builtin called FullyCoveredEXT is set to
|
||||
true.
|
||||
The shader variable works in either overestimation or underestimation mode.
|
||||
|
||||
Implementations can process degenerate triangles and lines by either
|
||||
discarding them or generating conservative fragments for them.
|
||||
Degenerate triangles are those that end up with zero area after the
|
||||
rasterizer quantizes them to the fixed-point pixel grid.
|
||||
Degenerate lines are those with zero length after quantization.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
None.
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending elink:VkStructureType:
|
||||
|
||||
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
|
||||
** ename:VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
|
||||
|
||||
=== New Enums
|
||||
|
||||
* elink:VkPipelineRasterizationConservativeStateCreateFlagsEXT
|
||||
* elink:VkConservativeRasterizationModeEXT
|
||||
|
||||
=== New Structures
|
||||
|
||||
* slink:VkPhysicalDeviceConservativeRasterizationPropertiesEXT
|
||||
* slink:VkPipelineRasterizationConservativeStateCreateInfoEXT
|
||||
|
||||
=== New Functions
|
||||
|
||||
None.
|
||||
|
||||
=== Issues
|
||||
|
||||
None.
|
||||
|
||||
=== Version History
|
||||
|
||||
* Revision 1, 2017-08-28 (Piers Daniell)
|
||||
- Internal revisions
|
@ -37,16 +37,16 @@ None.
|
||||
=== Issues
|
||||
|
||||
1) Should this extension and its related platform-specific extensions
|
||||
leverage <<VK_KHR_display>>, or provide separate equivalent interfaces.
|
||||
leverage `<<VK_KHR_display>>`, or provide separate equivalent interfaces.
|
||||
|
||||
*RESOLVED*: Use <<VK_KHR_display>> concepts and objects.
|
||||
<<VK_KHR_display>> can be used to enumerate all displays on the system,
|
||||
*RESOLVED*: Use `<<VK_KHR_display>>` concepts and objects.
|
||||
`<<VK_KHR_display>>` can be used to enumerate all displays on the system,
|
||||
including those attached to/in use by a window system or native platform,
|
||||
but <<VK_KHR_display_swapchain>> will fail to create a swapchain on in-use
|
||||
but `<<VK_KHR_display_swapchain>>` will fail to create a swapchain on in-use
|
||||
displays.
|
||||
This extension and its platform-specific children will allow applications to
|
||||
grab in-use displays away from window systems and/or native platforms,
|
||||
allowing them to be used with <<VK_KHR_display_swapchain>>.
|
||||
allowing them to be used with `<<VK_KHR_display_swapchain>>`.
|
||||
|
||||
2) Are separate calls needed to acquire displays and enable direct mode?
|
||||
|
||||
|
@ -21,7 +21,7 @@ rejected if the fragment is within any of the operational discard rectangles
|
||||
|
||||
These discard rectangles operate orthogonally to the existing scissor test
|
||||
functionality.
|
||||
If the <<VK_KHX_device_group>> extension is enabled the discard rectangles
|
||||
If the `<<VK_KHX_device_group>>` extension is enabled the discard rectangles
|
||||
can be different for each physical device in the device group by specifying
|
||||
the device mask and setting discard rectangle dynamic state.
|
||||
|
||||
|
@ -12,7 +12,7 @@ include::meta/VK_EXT_display_control.txt[]
|
||||
- Daniel Vetter, Intel
|
||||
|
||||
This extension defines a set of utility functions for use with the
|
||||
<<VK_KHR_display>> and <<VK_KHR_display_swapchain>> extensions.
|
||||
`<<VK_KHR_display>>` and `<<VK_KHR_display_swapchain>>` extensions.
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
|
@ -50,7 +50,7 @@ will be provided by an extension layered atop this one.
|
||||
This extension provides exactly one new feature: the ability to
|
||||
import/export between dma_bufs and slink:VkDeviceMemory.
|
||||
This feature, together with features provided by
|
||||
<<VK_KHR_external_memory_fd>>, is sufficient to bind a slink:VkBuffer to
|
||||
`<<VK_KHR_external_memory_fd>>`, is sufficient to bind a slink:VkBuffer to
|
||||
dma_buf.
|
||||
--
|
||||
|
||||
|
@ -16,7 +16,7 @@ This extension defines a special queue family,
|
||||
ename:VK_QUEUE_FAMILY_FOREIGN_EXT, which can be used to transfer ownership
|
||||
of resources backed by external memory to foreign, external queues.
|
||||
This is similar to ename:VK_QUEUE_FAMILY_EXTERNAL_KHR, defined in
|
||||
<<VK_KHR_external_memory>>.
|
||||
`<<VK_KHR_external_memory>>`.
|
||||
The key differences between the two are:
|
||||
|
||||
* The queues represented by ename:VK_QUEUE_FAMILY_EXTERNAL_KHR must share
|
||||
|
@ -44,7 +44,7 @@ ifdef::VK_NV_viewport_array2[]
|
||||
====
|
||||
The code:ShaderViewportIndexLayerEXT capability is equivalent to the
|
||||
code:ShaderViewportIndexLayerNV capability added by
|
||||
<<VK_NV_viewport_array2>>.
|
||||
`<<VK_NV_viewport_array2>>`.
|
||||
====
|
||||
endif::VK_NV_viewport_array2[]
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -13,9 +13,9 @@ include::meta/VK_GOOGLE_display_timing.txt[]
|
||||
- Jesse Hall, Google
|
||||
|
||||
This device extension allows an application that uses the
|
||||
<<VK_KHR_swapchain>> extension to obtain information about the presentation
|
||||
engine's display, to obtain timing information about each present, and to
|
||||
schedule a present to happen no earlier than a desired time.
|
||||
`<<VK_KHR_swapchain>>` extension to obtain information about the
|
||||
presentation engine's display, to obtain timing information about each
|
||||
present, and to schedule a present to happen no earlier than a desired time.
|
||||
An application can use this to minimize various visual anomalies (e.g.
|
||||
stuttering).
|
||||
|
||||
@ -68,10 +68,10 @@ None.
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
The example code for the this extension (like the <<VK_KHR_surface>> and
|
||||
<<VK_GOOGLE_display_timing>> extensions) is contained in the cube demo that
|
||||
is shipped with the official Khronos SDK, and is being kept up-to-date in
|
||||
that location (see:
|
||||
The example code for the this extension (like the `<<VK_KHR_surface>>` and
|
||||
`VK_GOOGLE_display_timing` extensions) is contained in the cube demo that is
|
||||
shipped with the official Khronos SDK, and is being kept up-to-date in that
|
||||
location (see:
|
||||
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.c
|
||||
).
|
||||
====
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -28,7 +28,7 @@ include::meta/VK_KHR_android_surface.txt[]
|
||||
|
||||
The `VK_KHR_android_surface` extension is an instance extension.
|
||||
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
|
||||
the <<VK_KHR_surface>> extension) that refers to an code:ANativeWindow,
|
||||
the `<<VK_KHR_surface>>` extension) that refers to an code:ANativeWindow,
|
||||
Android's native surface type.
|
||||
The code:ANativeWindow represents the producer endpoint of any buffer queue,
|
||||
regardless of consumer endpoint.
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -9,7 +9,7 @@ include::meta/VK_KHR_descriptor_update_template.txt[]
|
||||
*IP Status*::
|
||||
No known IP claims.
|
||||
*Interactions and External Dependencies*::
|
||||
- Interacts with <<VK_KHR_push_descriptor>>
|
||||
- Interacts with `<<VK_KHR_push_descriptor>>`
|
||||
*Contributors*::
|
||||
- Jeff Bolz, NVIDIA
|
||||
- Michael Worcester, Imagination Technologies
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -128,7 +128,7 @@ work with which present queues?
|
||||
|
||||
*PROPOSED RESOLUTION*: No known hardware has such limitations, but
|
||||
determining such limitations is supported automatically using the existing
|
||||
<<VK_KHR_surface>> and <<VK_KHR_swapchain>> query mechanisms.
|
||||
`<<VK_KHR_surface>>` and `<<VK_KHR_swapchain>>` query mechanisms.
|
||||
|
||||
8) Should all presentation need to be done relative to an overlay plane, or
|
||||
can a display mode + display be used alone to target an output?
|
||||
@ -232,7 +232,7 @@ creation time, or on a per-present basis.
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
The example code for the `VK_KHR_display` and <<VK_KHR_display_swapchain>>
|
||||
The example code for the `VK_KHR_display` and `<<VK_KHR_display_swapchain>>`
|
||||
extensions was removed from the appendix after revision 1.0.43.
|
||||
The display enumeration example code was ported to the cube demo that is
|
||||
shipped with the official Khronos SDK, and is being kept up-to-date in that
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -91,7 +91,7 @@ use for that image.
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
The example code for the <<VK_KHR_display>> and `VK_KHR_display_swapchain`
|
||||
The example code for the `<<VK_KHR_display>>` and `VK_KHR_display_swapchain`
|
||||
extensions was removed from the appendix after revision 1.0.43.
|
||||
The display swapchain creation example code was ported to the cube demo that
|
||||
is shipped with the official Khronos SDK, and is being kept up-to-date in
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -13,7 +13,7 @@ include::meta/VK_KHR_external_fence.txt[]
|
||||
- James Jones, NVIDIA
|
||||
- Jeff Juliano, NVIDIA
|
||||
- Cass Everitt, Oculus
|
||||
- Contributors to <<VK_KHR_external_semaphore,VK_KHR_external_semaphore>>
|
||||
- Contributors to `<<VK_KHR_external_semaphore>>`
|
||||
|
||||
An application using external memory may wish to synchronize access to that
|
||||
memory using fences.
|
||||
@ -44,5 +44,5 @@ None.
|
||||
=== Issues
|
||||
|
||||
This extension borrows concepts, semantics, and language from
|
||||
<<VK_KHR_external_semaphore,VK_KHR_external_semaphore>>.
|
||||
`<<VK_KHR_external_semaphore>>`.
|
||||
That extension's issues apply equally to this extension.
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -13,8 +13,7 @@ include::meta/VK_KHR_external_fence_capabilities.txt[]
|
||||
- James Jones, NVIDIA
|
||||
- Jeff Juliano, NVIDIA
|
||||
- Cass Everitt, Oculus
|
||||
- Contributors to
|
||||
<<VK_KHR_external_semaphore_capabilities,VK_KHR_external_semaphore_capablities>>
|
||||
- Contributors to `<<VK_KHR_external_semaphore_capablities>>`
|
||||
|
||||
An application may wish to reference device fences in multiple Vulkan
|
||||
logical devices or instances, in multiple processes, and/or in multiple
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -13,8 +13,7 @@ include::meta/VK_KHR_external_fence_fd.txt[]
|
||||
- James Jones, NVIDIA
|
||||
- Jeff Juliano, NVIDIA
|
||||
- Cass Everitt, Oculus
|
||||
- Contributors to
|
||||
<<VK_KHR_external_semaphore_fd,VK_KHR_external_semaphore_fd>>
|
||||
- Contributors to `<<VK_KHR_external_semaphore_fd>>`
|
||||
|
||||
An application using external memory may wish to synchronize access to that
|
||||
memory using fences.
|
||||
@ -47,5 +46,5 @@ None.
|
||||
=== Issues
|
||||
|
||||
This extension borrows concepts, semantics, and language from
|
||||
<<VK_KHR_external_semaphore_fd,VK_KHR_external_semaphore_fd>>.
|
||||
`<<VK_KHR_external_semaphore_fd>>`.
|
||||
That extension's issues apply equally to this extension.
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -13,8 +13,7 @@ include::meta/VK_KHR_external_fence_win32.txt[]
|
||||
- James Jones, NVIDIA
|
||||
- Jeff Juliano, NVIDIA
|
||||
- Cass Everitt, Oculus
|
||||
- Contributors to
|
||||
<<VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_win32>>
|
||||
- Contributors to `<<VK_KHR_external_semaphore_win32>>`
|
||||
|
||||
An application using external memory may wish to synchronize access to that
|
||||
memory using fences.
|
||||
@ -49,7 +48,7 @@ None.
|
||||
=== Issues
|
||||
|
||||
This extension borrows concepts, semantics, and language from
|
||||
<<VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_win32>>.
|
||||
`<<VK_KHR_external_semaphore_win32>>`.
|
||||
That extension's issues apply equally to this extension.
|
||||
|
||||
1) Should D3D12 fence handle types be supported, like they are for
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -9,8 +9,8 @@ include::meta/VK_KHR_external_memory.txt[]
|
||||
*IP Status*::
|
||||
No known IP claims.
|
||||
*Interactions and External Dependencies*::
|
||||
- Interacts with <<VK_KHR_dedicated_allocation>>.
|
||||
- Interacts with <<VK_NV_dedicated_allocation>>.
|
||||
- Interacts with `<<VK_KHR_dedicated_allocation>>`.
|
||||
- Interacts with `<<VK_NV_dedicated_allocation>>`.
|
||||
*Contributors*::
|
||||
- Jason Ekstrand, Intel
|
||||
- Ian Elliot, Google
|
||||
@ -63,7 +63,7 @@ None.
|
||||
Vulkan instance boundaries?
|
||||
|
||||
*RESOLVED*: New device ID fields have been introduced by
|
||||
<<VK_KHR_external_memory_capabilities>>.
|
||||
`<<VK_KHR_external_memory_capabilities>>`.
|
||||
These fields, combined with the existing
|
||||
slink:VkPhysicalDeviceProperties::pname:driverVersion field can be used to
|
||||
identify compatible devices across processes, drivers, and APIs.
|
||||
@ -125,8 +125,8 @@ Options for defining this transition include:
|
||||
A new structure has the advantage that the type of external transition can
|
||||
be described in as much detail as necessary.
|
||||
However, there is not currently a known need for anything beyond
|
||||
differentiating external vs. internal accesses, so this is likely an
|
||||
over-engineered solution.
|
||||
differentiating external vs.
|
||||
internal accesses, so this is likely an over-engineered solution.
|
||||
The access flag bit has the advantage that it can be applied at buffer,
|
||||
image, or global granularity, and semantically it maps pretty well to the
|
||||
operation being described.
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -10,9 +10,9 @@ include::meta/VK_KHR_external_memory_capabilities.txt[]
|
||||
No known IP claims.
|
||||
*Interactions and External Dependencies*::
|
||||
- This extension is written against version 1.0 of the Vulkan API.
|
||||
- Requires <<VK_KHR_get_physical_device_properties2>>.
|
||||
- Interacts with <<VK_KHR_dedicated_allocation>>.
|
||||
- Interacts with <<VK_NV_dedicated_allocation>>.
|
||||
- Requires `<<VK_KHR_get_physical_device_properties2>>`.
|
||||
- Interacts with `<<VK_KHR_dedicated_allocation>>`.
|
||||
- Interacts with `<<VK_NV_dedicated_allocation>>`.
|
||||
*Contributors*::
|
||||
- Ian Elliot, Google
|
||||
- Jesse Hall, Google
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -58,8 +58,9 @@ ifdef::editing-notes[]
|
||||
[NOTE]
|
||||
.editing-note
|
||||
==================
|
||||
(Jon) This issue refers to a token from `VK_KHR_external_semaphore_win32`,
|
||||
but there's no dependency or interaction with that extension defined above.
|
||||
(Jon) This issue refers to a token from
|
||||
`<<VK_KHR_external_semaphore_win32>>`, but there's no dependency or
|
||||
interaction with that extension defined above.
|
||||
==================
|
||||
endif::editing-notes[]
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -16,9 +16,8 @@ include::meta/VK_KHR_get_surface_capabilities2.txt[]
|
||||
This extension provides new entry points to query device surface
|
||||
capabilities in a way that can be easily extended by other extensions,
|
||||
without introducing any further entry points.
|
||||
This extension can be considered the <<VK_KHR_surface,VK_KHR_surface>>
|
||||
equivalent of the <<VK_KHR_get_physical_device_properties2,
|
||||
VK_KHR_get_physical_device_properties2>> extension.
|
||||
This extension can be considered the `<<VK_KHR_surface>>` equivalent of the
|
||||
`<<VK_KHR_get_physical_device_properties2>>` extension.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
@ -54,7 +53,7 @@ None.
|
||||
Other alternatives:
|
||||
|
||||
* `VK_KHR_surface2`
|
||||
* One extension, combined with `VK_KHR_get_display_properties2`
|
||||
* One extension, combined with `<<VK_KHR_get_display_properties2>>`
|
||||
|
||||
2) Should additional WSI query functions be extended?
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Intel Corporation
|
||||
// Copyright (c) 2016-2018 Intel Corporation
|
||||
|
||||
include::meta/VK_KHR_image_format_list.txt[]
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -20,8 +20,8 @@ include::meta/VK_KHR_incremental_present.txt[]
|
||||
- Jeff Bolz, NVIDIA
|
||||
|
||||
This device extension extends slink:vkQueuePresentKHR, from the
|
||||
<<VK_KHR_swapchain>> extension, allowing an application to specify a list of
|
||||
rectangular, modified regions of each image to present.
|
||||
`<<VK_KHR_swapchain>>` extension, allowing an application to specify a list
|
||||
of rectangular, modified regions of each image to present.
|
||||
This should be used in situations where an application is only changing a
|
||||
small portion of the presentable images within a swapchain, since it enables
|
||||
the presentation engine to avoid wasting time presenting parts of the
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -29,8 +29,8 @@ include::meta/VK_KHR_mir_surface.txt[]
|
||||
|
||||
The `VK_KHR_mir_surface` extension is an instance extension.
|
||||
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
|
||||
the <<VK_KHR_surface>> extension) that refers to a Mir surface, as well as a
|
||||
query to determine support for rendering to the windows desktop.
|
||||
the `<<VK_KHR_surface>>` extension) that refers to a Mir surface, as well as
|
||||
a query to determine support for rendering to the windows desktop.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -9,7 +9,7 @@ include::meta/VK_KHR_sampler_ycbcr_conversion.txt[]
|
||||
*IP Status*::
|
||||
No known IP claims.
|
||||
*Interactions and External Dependencies*::
|
||||
- This extension interacts with <<VK_EXT_debug_report>>
|
||||
- This extension interacts with `<<VK_EXT_debug_report>>`
|
||||
*Contributors*::
|
||||
- Andrew Garrard, Samsung Electronics
|
||||
- Tobias Hector, Imagination Technologies
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -23,7 +23,7 @@ include::meta/VK_KHR_shared_presentable_image.txt[]
|
||||
- Cass Everitt, Oculus
|
||||
- Johannes Van Waveren, Oculus
|
||||
|
||||
This extension extends <<VK_KHR_swapchain>> to enable creation of a shared
|
||||
This extension extends `<<VK_KHR_swapchain>>` to enable creation of a shared
|
||||
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
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -28,10 +28,10 @@ surface or window objects for use with Vulkan.
|
||||
It also provides a way to determine whether a queue family in a physical
|
||||
device supports presenting to particular surface.
|
||||
|
||||
Separate extensions for each platform provide the mechanisms for
|
||||
creating slink:VkSurfaceKHR objects, but once created they may be used in
|
||||
this and other platform-independent extensions, in particular the
|
||||
<<VK_KHR_swapchain>> extension.
|
||||
Separate extensions for each platform provide the mechanisms for creating
|
||||
slink:VkSurfaceKHR objects, but once created they may be used in this and
|
||||
other platform-independent extensions, in particular the
|
||||
`<<VK_KHR_swapchain>>` extension.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
@ -68,7 +68,7 @@ this and other platform-independent extensions, in particular the
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
The example code for the `VK_KHR_surface` and <<VK_KHR_swapchain>>
|
||||
The example code for the `VK_KHR_surface` and `<<VK_KHR_swapchain>>`
|
||||
extensions was removed from the appendix after revision 1.0.29.
|
||||
This WSI example code was ported to the cube demo that is shipped with the
|
||||
official Khronos SDK, and is being kept up-to-date in that location (see:
|
||||
@ -94,8 +94,8 @@ section of the desktop they exist on.
|
||||
2) Should the flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
|
||||
flink:vkGetPhysicalDeviceSurfaceFormatsKHR, and
|
||||
flink:vkGetPhysicalDeviceSurfacePresentModesKHR functions from
|
||||
<<VK_KHR_swapchain>> be modified to operate on physical devices and moved to
|
||||
this extension to implement the resolution of issue 1?
|
||||
`<<VK_KHR_swapchain>>` be modified to operate on physical devices and moved
|
||||
to this extension to implement the resolution of issue 1?
|
||||
|
||||
*RESOLVED*: No, separate query functions are needed, as the purposes served
|
||||
are similar but incompatible.
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -26,7 +26,7 @@ include::meta/VK_KHR_swapchain.txt[]
|
||||
- Ray Smith, ARM
|
||||
|
||||
The `VK_KHR_swapchain` extension is the device-level companion to the
|
||||
<<VK_KHR_surface>> extension.
|
||||
`<<VK_KHR_surface>>` extension.
|
||||
It introduces slink:VkSwapchainKHR objects, which provide the ability to
|
||||
present rendering results to a surface.
|
||||
|
||||
@ -435,7 +435,7 @@ requirement is only sensible at the swapchain level.
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
The example code for the <<VK_KHR_surface>> and `VK_KHR_swapchain`
|
||||
The example code for the `<<VK_KHR_surface>>` and `VK_KHR_swapchain`
|
||||
extensions was removed from the appendix after revision 1.0.29.
|
||||
This WSI example code was ported to the cube demo that is shipped with the
|
||||
official Khronos SDK, and is being kept up-to-date in that location (see:
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -28,9 +28,9 @@ include::meta/VK_KHR_wayland_surface.txt[]
|
||||
|
||||
The `VK_KHR_wayland_surface` extension is an instance extension.
|
||||
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
|
||||
the <<VK_KHR_surface>> extension) that refers to a Wayland code:wl_surface,
|
||||
as well as a query to determine support for rendering to a Wayland
|
||||
compositor.
|
||||
the `<<VK_KHR_surface>>` extension) that refers to a Wayland
|
||||
code:wl_surface, as well as a query to determine support for rendering to a
|
||||
Wayland compositor.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -28,8 +28,8 @@ include::meta/VK_KHR_win32_surface.txt[]
|
||||
|
||||
The `VK_KHR_win32_surface` extension is an instance extension.
|
||||
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
|
||||
the <<VK_KHR_surface>> extension) that refers to a Win32 code:HWND, as well
|
||||
as a query to determine support for rendering to the windows desktop.
|
||||
the `<<VK_KHR_surface>>` extension) that refers to a Win32 code:HWND, as
|
||||
well as a query to determine support for rendering to the windows desktop.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -28,7 +28,7 @@ include::meta/VK_KHR_xcb_surface.txt[]
|
||||
|
||||
The `VK_KHR_xcb_surface` extension is an instance extension.
|
||||
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
|
||||
the <<VK_KHR_surface>> extension) that refers to an X11 code:Window, using
|
||||
the `<<VK_KHR_surface>>` extension) that refers to an X11 code:Window, using
|
||||
the XCB client-side library, as well as a query to determine support for
|
||||
rendering via XCB.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -28,7 +28,7 @@ include::meta/VK_KHR_xlib_surface.txt[]
|
||||
|
||||
The `VK_KHR_xlib_surface` extension is an instance extension.
|
||||
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
|
||||
the <<VK_KHR_surface>> extension) that refers to an X11 code:Window, using
|
||||
the `<<VK_KHR_surface>>` extension) that refers to an X11 code:Window, using
|
||||
the Xlib client-side library, as well as a query to determine support for
|
||||
rendering via Xlib.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -14,7 +14,7 @@ include::meta/VK_KHX_device_group.txt[]
|
||||
|
||||
This extension provides functionality to use a logical device that consists
|
||||
of multiple physical devices, as created with the
|
||||
<<VK_KHX_device_group_creation>> extension.
|
||||
`<<VK_KHX_device_group_creation>>` extension.
|
||||
A device group can allocate memory across the subdevices, bind memory from
|
||||
one subdevice to a resource on another subdevice, record command buffers
|
||||
where some work executes on an arbitrary subset of the subdevices, and
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -15,7 +15,7 @@ This extension provides instance-level commands to enumerate groups of
|
||||
physical devices, and to create a logical device from a subset of one of
|
||||
those groups.
|
||||
Such a logical device can then be used with new features in the
|
||||
<<VK_KHX_device_group>> extension.
|
||||
`<<VK_KHX_device_group>>` extension.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 The Brenwill Workshop Ltd. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 The Brenwill Workshop Ltd. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -13,7 +13,7 @@ include::meta/VK_MVK_ios_surface.txt[]
|
||||
|
||||
The `VK_MVK_ios_surface` extension is an instance extension.
|
||||
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
|
||||
the <<VK_KHR_surface>> extension) that refers to a code:UIView, the native
|
||||
the `<<VK_KHR_surface>>` extension) that refers to a code:UIView, the native
|
||||
surface type of iOS, which is underpinned by a code:CAMetalLayer, to support
|
||||
rendering to the surface using Apple's Metal framework.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 The Brenwill Workshop Ltd. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 The Brenwill Workshop Ltd. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -13,9 +13,9 @@ include::meta/VK_MVK_macos_surface.txt[]
|
||||
|
||||
The `VK_MVK_macos_surface` extension is an instance extension.
|
||||
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
|
||||
the <<VK_KHR_surface>> extension) that refers to an code:NSView, the native
|
||||
surface type of macOS, which is underpinned by a code:CAMetalLayer, to
|
||||
support rendering to the surface using Apple's Metal framework.
|
||||
the `<<VK_KHR_surface>>` extension) that refers to an code:NSView, the
|
||||
native surface type of macOS, which is underpinned by a code:CAMetalLayer,
|
||||
to support rendering to the surface using Apple's Metal framework.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
|
@ -12,7 +12,7 @@ include::meta/VK_NN_vi_surface.txt[]
|
||||
|
||||
The `VK_NN_vi_surface` extension is an instance extension.
|
||||
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
|
||||
the <<VK_KHR_surface>> extension) associated with an
|
||||
the `<<VK_KHR_surface>>` extension) associated with an
|
||||
code:nn::code:vi::code:Layer.
|
||||
|
||||
=== New Object Types
|
||||
|
@ -150,9 +150,8 @@ Extending elink:VkAccessFlagBits:
|
||||
|
||||
As usual, one of the hardest issues ;)
|
||||
|
||||
Alternatives:
|
||||
`VK_gpu_commands`, `VK_execute_commands`, `VK_device_commands`,
|
||||
`VK_device_execute_commands`, `VK_device_execute`,
|
||||
Alternatives: `VK_gpu_commands`, `VK_execute_commands`,
|
||||
`VK_device_commands`, `VK_device_execute_commands`, `VK_device_execute`,
|
||||
`VK_device_created_commands`, `VK_device_recorded_commands`,
|
||||
`VK_device_generated_commands`
|
||||
|
||||
@ -164,9 +163,9 @@ They also benefit from being processable in parallel.
|
||||
|
||||
3) How to name sequence description
|
||||
|
||||
stext:ExecuteCommandSignature is a bit long. Maybe just
|
||||
stext:ExecuteSignature, or actually more following Vulkan nomenclature:
|
||||
slink:VkIndirectCommandsLayoutNVX.
|
||||
stext:ExecuteCommandSignature is a bit long.
|
||||
Maybe just stext:ExecuteSignature, or actually more following Vulkan
|
||||
nomenclature: slink:VkIndirectCommandsLayoutNVX.
|
||||
|
||||
4) Do we want to provide code:indirectCommands inputs with layout or at
|
||||
code:indirectCommands time?
|
||||
|
@ -10,7 +10,7 @@ include::meta/VK_NVX_multiview_per_view_attributes.txt[]
|
||||
SPIR-V extension.
|
||||
- This extension requires the +GL_NVX_multiview_per_view_attributes+
|
||||
extension for GLSL source languages.
|
||||
- This extension interacts with <<VK_NV_viewport_array2>>.
|
||||
- This extension interacts with `<<VK_NV_viewport_array2>>`.
|
||||
*Contributors*::
|
||||
- Jeff Bolz, NVIDIA
|
||||
- Daniel Koch, NVIDIA
|
||||
@ -41,8 +41,8 @@ gl_PositionPerViewNV[gl_ViewIndex]` for all views in the subpass.
|
||||
Implementations are free to either use the per-view outputs or the
|
||||
non-per-view outputs, whichever would be more efficient.
|
||||
|
||||
If <<VK_NV_viewport_array2>> is not also supported and enabled, the per-view
|
||||
viewport mask must: not be used.
|
||||
If `<<VK_NV_viewport_array2>>` is not also supported and enabled, the
|
||||
per-view viewport mask must: not be used.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
|
@ -5,8 +5,8 @@ include::meta/VK_NV_external_memory_capabilities.txt[]
|
||||
*IP Status*::
|
||||
No known IP claims.
|
||||
*Interactions and External Dependencies*::
|
||||
- Interacts with <<VK_KHR_dedicated_allocation>>.
|
||||
- Interacts with <<VK_NV_dedicated_allocation>>.
|
||||
- Interacts with `<<VK_KHR_dedicated_allocation>>`.
|
||||
- Interacts with `<<VK_NV_dedicated_allocation>>`.
|
||||
*Contributors*::
|
||||
- James Jones, NVIDIA
|
||||
|
||||
|
@ -52,8 +52,8 @@ ifdef::VK_EXT_shader_viewport_index_layer[]
|
||||
.Note
|
||||
====
|
||||
The code:ShaderViewportIndexLayerNV capability is equivalent to the
|
||||
code:ShaderViewportIndexLayerEXT capability added by
|
||||
<<VK_EXT_shader_viewport_index_layer,VK_EXT_shader_viewport_index_layer>>.
|
||||
code:ShaderViewportIndexLayerEXT capability added by
|
||||
`<<VK_EXT_shader_viewport_index_layer>>`.
|
||||
====
|
||||
endif::VK_EXT_shader_viewport_index_layer[]
|
||||
|
||||
|
@ -59,7 +59,7 @@ must happen prior to the viewport transform.
|
||||
In particular, it needs to be performed before clipping and perspective
|
||||
division.
|
||||
|
||||
The viewport mask expansion (<<VK_NV_viewport_array2>>) and the viewport
|
||||
The viewport mask expansion (`<<VK_NV_viewport_array2>>`) and the viewport
|
||||
swizzle could potentially be performed before or after transform feedback,
|
||||
but feeding back several viewports worth of primitives with different
|
||||
swizzles doesn't seem particularly useful.
|
||||
@ -67,8 +67,8 @@ This specification applies the viewport mask and swizzle after transform
|
||||
feedback, and makes primitive queries only count each primitive once.
|
||||
|
||||
2) Any interesting examples of how this extension,
|
||||
<<VK_NV_viewport_array2>>, and <<VK_NV_geometry_shader_passthrough>> can be
|
||||
used together in practice?
|
||||
`<<VK_NV_viewport_array2>>`, and `<<VK_NV_geometry_shader_passthrough>>` can
|
||||
be used together in practice?
|
||||
|
||||
**RESOLVED**: One interesting use case for this extension is for single-pass
|
||||
rendering to a cubemap.
|
||||
@ -164,9 +164,9 @@ Each face also has a separate swizzle, programmed via the
|
||||
slink:VkPipelineViewportSwizzleStateCreateInfoNV pipeline state.
|
||||
The viewport swizzle feature performs the coordinate transformation handled
|
||||
by the code:rotate() function in the original shader.
|
||||
The code:viewport_relative layout qualifier says that the viewport number
|
||||
(0 to 5) is added to the base code:gl_Layer value of 0 to determine which
|
||||
layer (cube face) the primitive should be sent to.
|
||||
The code:viewport_relative layout qualifier says that the viewport number (0
|
||||
to 5) is added to the base code:gl_Layer value of 0 to determine which layer
|
||||
(cube face) the primitive should be sent to.
|
||||
|
||||
Note that the use of the passed through input code:normal in this example
|
||||
suggests that the fragment shader in this example would perform an operation
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -103,6 +103,9 @@ include::../api/flags/VkPipelineDynamicStateCreateFlags.txt[]
|
||||
include::../api/flags/VkPipelineInputAssemblyStateCreateFlags.txt[]
|
||||
include::../api/flags/VkPipelineLayoutCreateFlags.txt[]
|
||||
include::../api/flags/VkPipelineMultisampleStateCreateFlags.txt[]
|
||||
ifdef::VK_EXT_conservative_rasterization[]
|
||||
include::../api/flags/VkPipelineRasterizationConservativeStateCreateFlagsEXT.txt[]
|
||||
endif::VK_EXT_conservative_rasterization[]
|
||||
include::../api/flags/VkPipelineRasterizationStateCreateFlags.txt[]
|
||||
include::../api/flags/VkPipelineShaderStageCreateFlags.txt[]
|
||||
include::../api/flags/VkPipelineStageFlags.txt[]
|
||||
@ -353,13 +356,13 @@ typedef <return_type> (VKAPI_PTR *PFN_<command_name>)(<command_parameters>);
|
||||
|
||||
=== Platform-Specific Header Control
|
||||
|
||||
// @refBegin VK_NO_STDINT_H Control definition of +<stdint.h>+ types
|
||||
// @refBegin VK_NO_STDINT_H Control definition of <stdint.h> types
|
||||
|
||||
If the dname:VK_NO_STDINT_H macro is defined by the application at compile
|
||||
time, extended integer types used by `vulkan.h`, such as code:uint8_t, must:
|
||||
also be defined by the application.
|
||||
Otherwise, `vulkan.h` will not compile.
|
||||
If dname:VK_NO_STDINT_H is not defined, the system `+<stdint.h>+` is used to
|
||||
If dname:VK_NO_STDINT_H is not defined, the system `<stdint.h>` is used to
|
||||
define these types, or there is a fallback path when Microsoft Visual Studio
|
||||
version 2008 and earlier versions are detected at compile time.
|
||||
|
||||
@ -389,20 +392,20 @@ the macro is ``#define``d are shown in the
|
||||
[options="header"]
|
||||
|====
|
||||
| Extension Name | Required Compile Time Symbol | Window System Name | External Header Files Used
|
||||
| <<VK_KHR_android_surface>> | dname:VK_USE_PLATFORM_ANDROID_KHR | Android Native | `+<android/native_window.h>+`
|
||||
| <<VK_KHR_mir_surface>> | dname:VK_USE_PLATFORM_MIR_KHR | Mir | `+<mir_toolkit/client_types.h>+`
|
||||
| <<VK_KHR_wayland_surface>> | dname:VK_USE_PLATFORM_WAYLAND_KHR | Wayland | `+<wayland-client.h>+`
|
||||
| <<VK_KHR_win32_surface>> | dname:VK_USE_PLATFORM_WIN32_KHR | Microsoft Windows | `+<windows.h>+`
|
||||
| <<VK_KHR_xcb_surface>> | dname:VK_USE_PLATFORM_XCB_KHR | X Window System Xcb library | `+<xcb/xcb.h>+`
|
||||
| <<VK_KHR_xlib_surface>> | dname:VK_USE_PLATFORM_XLIB_KHR | X Window System Xlib library | `+<X11/Xlib.h>+`
|
||||
| `<<VK_KHR_android_surface>>` | dname:VK_USE_PLATFORM_ANDROID_KHR | Android Native | `<android/native_window.h>`
|
||||
| `<<VK_KHR_mir_surface>>` | dname:VK_USE_PLATFORM_MIR_KHR | Mir | `<mir_toolkit/client_types.h>`
|
||||
| `<<VK_KHR_wayland_surface>>` | dname:VK_USE_PLATFORM_WAYLAND_KHR | Wayland | `<wayland-client.h>`
|
||||
| `<<VK_KHR_win32_surface>>` | dname:VK_USE_PLATFORM_WIN32_KHR | Microsoft Windows | `<windows.h>`
|
||||
| `<<VK_KHR_xcb_surface>>` | dname:VK_USE_PLATFORM_XCB_KHR | X Window System Xcb library | `<xcb/xcb.h>`
|
||||
| `<<VK_KHR_xlib_surface>>` | dname:VK_USE_PLATFORM_XLIB_KHR | X Window System Xlib library | `<X11/Xlib.h>`
|
||||
ifdef::VK_MVK_ios_surface[]
|
||||
| <<VK_MVK_ios_surface>> | dname:VK_USE_PLATFORM_IOS_MVK | iOS | None
|
||||
| `<<VK_MVK_ios_surface>>` | dname:VK_USE_PLATFORM_IOS_MVK | iOS | None
|
||||
endif::VK_MVK_ios_surface[]
|
||||
ifdef::VK_MVK_macos_surface[]
|
||||
| <<VK_MVK_macos_surface>> | dname:VK_USE_PLATFORM_MACOS_MVK | macOS | None
|
||||
| `<<VK_MVK_macos_surface>>` | dname:VK_USE_PLATFORM_MACOS_MVK | macOS | None
|
||||
endif::VK_MVK_macos_surface[]
|
||||
ifdef::VK_NN_vi_surface[]
|
||||
| <<VK_NN_vi_surface>> | dname:VK_USE_PLATFORM_VI_NN | VI | None
|
||||
| `<<VK_NN_vi_surface>>` | dname:VK_USE_PLATFORM_VI_NN | VI | None
|
||||
endif::VK_NN_vi_surface[]
|
||||
|====
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -262,6 +262,10 @@ ifdef::VK_EXT_blend_operation_advanced[]
|
||||
include::VK_EXT_blend_operation_advanced.txt[]
|
||||
endif::VK_EXT_blend_operation_advanced[]
|
||||
|
||||
ifdef::VK_EXT_conservative_rasterization[]
|
||||
include::VK_EXT_conservative_rasterization.txt[]
|
||||
endif::VK_EXT_conservative_rasterization[]
|
||||
|
||||
ifdef::VK_EXT_debug_marker[]
|
||||
include::VK_EXT_debug_marker.txt[]
|
||||
endif::VK_EXT_debug_marker[]
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -29,7 +29,7 @@ Adjacent Vertex::
|
||||
ifdef::VK_EXT_blend_operation_advanced[]
|
||||
Advanced Blend Operation::
|
||||
Blending performed using one of the blend operation enums introduced by
|
||||
the <<VK_EXT_blend_operation_advanced>> extension.
|
||||
the `<<VK_EXT_blend_operation_advanced>>` extension.
|
||||
See <<framebuffer-blend-advanced, Advanced Blending Operations>>.
|
||||
endif::VK_EXT_blend_operation_advanced[]
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -79,7 +79,7 @@ to that feature must: also be supported.
|
||||
| code:MultiViewport | <<features-features-multiViewport,multiViewport>>
|
||||
ifdef::VK_KHR_shader_draw_parameters[]
|
||||
[[spirvenv-capabilities-table-drawparameters]]
|
||||
| code:DrawParameters | <<VK_KHR_shader_draw_parameters,VK_KHR_shader_draw_parameters>>
|
||||
| code:DrawParameters | `<<VK_KHR_shader_draw_parameters>>`
|
||||
endif::VK_KHR_shader_draw_parameters[]
|
||||
ifdef::VK_KHR_variable_pointers[]
|
||||
[[spirvenv-capabilities-table-variablepointers]]
|
||||
@ -88,56 +88,56 @@ ifdef::VK_KHR_variable_pointers[]
|
||||
endif::VK_KHR_variable_pointers[]
|
||||
ifdef::VK_EXT_shader_stencil_export[]
|
||||
[[spirvenv-capabilities-table-shaderstencilexportext]]
|
||||
| code:StencilExportEXT | <<VK_EXT_shader_stencil_export,VK_EXT_shader_stencil_export>>
|
||||
| code:StencilExportEXT | `<<VK_EXT_shader_stencil_export>>`
|
||||
endif::VK_EXT_shader_stencil_export[]
|
||||
ifdef::VK_EXT_shader_subgroup_ballot[]
|
||||
[[spirvenv-capabilities-table-subgroupballot]]
|
||||
| code:SubgroupBallotKHR | <<VK_EXT_shader_subgroup_ballot,VK_EXT_shader_subgroup_ballot>>
|
||||
| code:SubgroupBallotKHR | `<<VK_EXT_shader_subgroup_ballot>>`
|
||||
endif::VK_EXT_shader_subgroup_ballot[]
|
||||
ifdef::VK_EXT_shader_subgroup_vote[]
|
||||
[[spirvenv-capabilities-table-subgroupvote]]
|
||||
| code:SubgroupVoteKHR | <<VK_EXT_shader_subgroup_vote,VK_EXT_shader_subgroup_vote>>
|
||||
| code:SubgroupVoteKHR | `<<VK_EXT_shader_subgroup_vote>>`
|
||||
endif::VK_EXT_shader_subgroup_vote[]
|
||||
ifdef::VK_KHX_multiview[]
|
||||
[[spirvenv-capabilities-table-multiview]]
|
||||
| code:MultiView | <<VK_KHX_multiview,VK_KHX_multiview>>
|
||||
| code:MultiView | `<<VK_KHX_multiview>>`
|
||||
endif::VK_KHX_multiview[]
|
||||
ifdef::VK_KHX_device_group[]
|
||||
[[spirvenv-capabilities-table-devicegroup]]
|
||||
| code:DeviceGroup | <<VK_KHX_device_group,VK_KHX_device_group>>
|
||||
| code:DeviceGroup | `<<VK_KHX_device_group>>`
|
||||
endif::VK_KHX_device_group[]
|
||||
ifdef::VK_AMD_shader_image_load_store_lod[]
|
||||
[[spirvenv-capabilities-table-imagereadwritelodamd]]
|
||||
| code:ImageReadWriteLodAMD | <<VK_AMD_shader_image_load_store_lod,VK_AMD_shader_image_load_store_lod>>
|
||||
| code:ImageReadWriteLodAMD | `<<VK_AMD_shader_image_load_store_lod>>`
|
||||
endif::VK_AMD_shader_image_load_store_lod[]
|
||||
ifdef::VK_AMD_texture_gather_bias_lod[]
|
||||
[[spirvenv-capabilities-table-imagegatherbiaslodamd]]
|
||||
| code:ImageGatherBiasLodAMD | <<VK_AMD_texture_gather_bias_lod,VK_AMD_texture_gather_bias_lod>>
|
||||
| code:ImageGatherBiasLodAMD | `<<VK_AMD_texture_gather_bias_lod>>`
|
||||
endif::VK_AMD_texture_gather_bias_lod[]
|
||||
ifdef::VK_AMD_shader_fragment_mask[]
|
||||
[[spirvenv-capabilities-table-fragmentmaskamd]]
|
||||
| code:FragmentMaskAMD | <<VK_AMD_shader_fragment_mask,VK_AMD_shader_fragment_mask>>
|
||||
| code:FragmentMaskAMD | `<<VK_AMD_shader_fragment_mask>>`
|
||||
endif::VK_AMD_shader_fragment_mask[]
|
||||
ifdef::VK_NV_sample_mask_override_coverage[]
|
||||
[[spirvenv-capabilities-table-samplemaskoverridecoverage]]
|
||||
| code:SampleMaskOverrideCoverageNV | <<VK_NV_sample_mask_override_coverage,VK_NV_sample_mask_override_coverage>>
|
||||
| code:SampleMaskOverrideCoverageNV | `<<VK_NV_sample_mask_override_coverage>>`
|
||||
endif::VK_NV_sample_mask_override_coverage[]
|
||||
ifdef::VK_NV_geometry_shader_passthrough[]
|
||||
[[spirvenv-capabilities-table-geometryshaderpassthrough]]
|
||||
| code:GeometryShaderPassthroughNV | <<VK_NV_geometry_shader_passthrough,VK_NV_geometry_shader_passthrough>>
|
||||
| code:GeometryShaderPassthroughNV | `<<VK_NV_geometry_shader_passthrough>>`
|
||||
endif::VK_NV_geometry_shader_passthrough[]
|
||||
ifdef::VK_EXT_shader_viewport_index_layer[]
|
||||
[[spirvenv-capabilities-table-shader-viewport-index-layer]]
|
||||
| code:ShaderViewportIndexLayerEXT | <<VK_EXT_shader_viewport_index_layer,VK_EXT_shader_viewport_index_layer>>
|
||||
| code:ShaderViewportIndexLayerEXT | `<<VK_EXT_shader_viewport_index_layer>>`
|
||||
endif::VK_EXT_shader_viewport_index_layer[]
|
||||
ifdef::VK_NV_viewport_array2[]
|
||||
[[spirvenv-capabilities-table-viewportarray2]]
|
||||
| code:ShaderViewportIndexLayerNV | <<VK_NV_viewport_array2,VK_NV_viewport_array2>>
|
||||
| code:ShaderViewportMaskNV | <<VK_NV_viewport_array2,VK_NV_viewport_array2>>
|
||||
| code:ShaderViewportIndexLayerNV | `<<VK_NV_viewport_array2>>`
|
||||
| code:ShaderViewportMaskNV | `<<VK_NV_viewport_array2>>`
|
||||
endif::VK_NV_viewport_array2[]
|
||||
ifdef::VK_NVX_multiview_per_view_attributes[]
|
||||
[[spirvenv-capabilities-table-perviewattributes]]
|
||||
| code:PerViewAttributesNV | <<VK_NVX_multiview_per_view_attributes,VK_NVX_multiview_per_view_attributes>>
|
||||
| code:PerViewAttributesNV | `<<VK_NVX_multiview_per_view_attributes>>`
|
||||
endif::VK_NVX_multiview_per_view_attributes[]
|
||||
ifdef::VK_KHR_16bit_storage[]
|
||||
[[spirvenv-capabilities-table-16bitstorage]]
|
||||
@ -148,7 +148,7 @@ ifdef::VK_KHR_16bit_storage[]
|
||||
endif::VK_KHR_16bit_storage[]
|
||||
ifdef::VK_EXT_post_depth_coverage[]
|
||||
[[spirvenv-capabilities-table-postdepthcoverage]]
|
||||
| code:SampleMaskPostDepthCoverage | <<VK_EXT_post_depth_coverage,VK_EXT_post_depth_coverage>>
|
||||
| code:SampleMaskPostDepthCoverage | `<<VK_EXT_post_depth_coverage>>`
|
||||
endif::VK_EXT_post_depth_coverage[]
|
||||
|====
|
||||
|
||||
@ -305,6 +305,20 @@ following rules:
|
||||
ifdef::VK_KHR_storage_buffer_storage_class[]
|
||||
** *StorageBuffer*
|
||||
endif::VK_KHR_storage_buffer_storage_class[]
|
||||
* Memory semantics must: obey the following rules:
|
||||
** *Acquire* must: not be used with code:OpAtomicStore.
|
||||
** *Release* must: not be used with code:OpAtomicLoad.
|
||||
** *AcquireRelease* must: not be used with code:OpAtomicStore or
|
||||
code:OpAtomicLoad.
|
||||
** Sequentially consistent atomics and barriers are not supported and
|
||||
*SequentiallyConsistent* is treated as *AcquireRelease*.
|
||||
*SequentiallyConsistent* should: not be used.
|
||||
** code:OpMemoryBarrier must: not use *None* and must: include at least
|
||||
one storage class.
|
||||
** If the semantics for code:OpControlBarrier is not *None*, then it must:
|
||||
include at least one storage class.
|
||||
** *SubgroupMemory*, *CrossWorkgroupMemory*, and *AtomicCounterMemory* are
|
||||
ignored.
|
||||
* Any code:OpVariable with an code:Initializer operand must: have one of
|
||||
the following as its code:Storage code:Class operand:
|
||||
** *Output*
|
||||
|
@ -2,7 +2,7 @@
|
||||
[open,refpage='VkPresentTimesInfoGOOGLE',desc='The earliest time each image should be presented',type='structs']
|
||||
--
|
||||
|
||||
When the <<VK_GOOGLE_display_timing>> extension is enabled, additional
|
||||
When the `<<VK_GOOGLE_display_timing>>` extension is enabled, additional
|
||||
fields can: be specified that allow an application to specify the earliest
|
||||
time that an image should be displayed.
|
||||
This allows an application to avoid stutter that is caused by an image being
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2016-2017 Google Inc. This work is licensed under a
|
||||
// Copyright (c) 2016-2018 Google Inc. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -29,7 +29,7 @@ Applications also need to tell the presentation engine to display an image
|
||||
no sooner than a given time.
|
||||
This can allow the application's animation to look smooth to the user, with
|
||||
no stuttering.
|
||||
The <<VK_GOOGLE_display_timing>> extension allows an application to satisfy
|
||||
The `VK_GOOGLE_display_timing` extension allows an application to satisfy
|
||||
these needs.
|
||||
|
||||
The presentation engine's display typically refreshes the pixels that are
|
||||
@ -213,7 +213,7 @@ satisfactory.
|
||||
|
||||
--
|
||||
|
||||
The full <<VK_GOOGLE_display_timing>> extension semantics are described for
|
||||
The full `VK_GOOGLE_display_timing` extension semantics are described for
|
||||
swapchains created with ename:VK_PRESENT_MODE_FIFO_KHR.
|
||||
For example, non-zero values of
|
||||
sname:VkPresentTimeGOOGLE::pname:desiredPresentTime must: be honored, and
|
||||
|
@ -1,7 +1,7 @@
|
||||
[open,refpage='VkPhysicalDevice16BitStorageFeaturesKHR',desc='Structure describing features supported by VK_KHR_16bit_storage',type='structs']
|
||||
--
|
||||
|
||||
To query features additionally supported by the <<VK_KHR_16bit_storage>>
|
||||
To query features additionally supported by the `<<VK_KHR_16bit_storage>>`
|
||||
extension, call flink:vkGetPhysicalDeviceFeatures2KHR with a
|
||||
sname:VkPhysicalDevice16BitStorageFeaturesKHR structure included in the
|
||||
pname:pNext chain of its pname:pFeatures parameter.
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -10,7 +10,7 @@ In some environments applications can: also present Vulkan rendering
|
||||
directly to display devices without using an intermediate windowing system.
|
||||
This can: be useful for embedded applications, or implementing the
|
||||
rendering/presentation backend of a windowing system using Vulkan.
|
||||
The <<VK_KHR_display>> extension provides the functionality necessary to
|
||||
The `VK_KHR_display` extension provides the functionality necessary to
|
||||
enumerate display devices and create sname:VkSurfaceKHR objects that target
|
||||
displays.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
[open,refpage='vkCreateSharedSwapchainsKHR',desc='Create multiple swapchains that share presentable images',type='protos']
|
||||
--
|
||||
|
||||
When the <<VK_KHR_display_swapchain>> extension is enabled, multiple
|
||||
When the `VK_KHR_display_swapchain` extension is enabled, multiple
|
||||
swapchains that share presentable images are created by calling:
|
||||
|
||||
include::../../api/protos/vkCreateSharedSwapchainsKHR.txt[]
|
||||
|
@ -1,10 +1,10 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
[[display_swapchain_present,display_swapchain_present]]
|
||||
|
||||
When the <<VK_KHR_display_swapchain>> extension is enabled additional fields
|
||||
When the `VK_KHR_display_swapchain` extension is enabled additional fields
|
||||
can: be specified when presenting an image to a swapchain by setting
|
||||
slink:VkPresentInfoKHR::pname:pNext to point to an instance of the
|
||||
slink:VkDisplayPresentInfoKHR structure.
|
||||
|
@ -1,11 +1,11 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
[open,refpage='VkPresentRegionsKHR',desc='Structure hint of rectangular regions changed by vkQueuePresentKHR',type='structs']
|
||||
--
|
||||
|
||||
When the <<VK_KHR_incremental_present>> extension is enabled, additional
|
||||
When the `VK_KHR_incremental_present` extension is enabled, additional
|
||||
fields can: be specified that allow an application to specify that only
|
||||
certain rectangular regions of the presentable images of a swapchain are
|
||||
changed.
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -38,7 +38,7 @@ they are intended for.
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
The <<VK_KHR_shared_presentable_image>> extension does not provide
|
||||
The `VK_KHR_shared_presentable_image` extension does not provide
|
||||
functionality for determining the timing of the presentation engine's
|
||||
refresh cycles.
|
||||
====
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -46,7 +46,7 @@ which are represented by sname:VkSurfaceKHR handles:
|
||||
|
||||
include::../../api/handles/VkSurfaceKHR.txt[]
|
||||
|
||||
The <<VK_KHR_surface>> extension declares the sname:VkSurfaceKHR object, and
|
||||
The `VK_KHR_surface` extension declares the sname:VkSurfaceKHR object, and
|
||||
provides a function for destroying sname:VkSurfaceKHR objects.
|
||||
Separate platform-specific extensions each provide a function for creating a
|
||||
sname:VkSurfaceKHR object for the respective platform.
|
||||
@ -121,7 +121,7 @@ endif::VK_NN_vi_surface[]
|
||||
=== Platform-Independent Information
|
||||
|
||||
Once created, sname:VkSurfaceKHR objects can: be used in this and other
|
||||
extensions, in particular the <<VK_KHR_swapchain>> extension.
|
||||
extensions, in particular the `<<VK_KHR_swapchain>>` extension.
|
||||
|
||||
Several WSI functions return ename:VK_ERROR_SURFACE_LOST_KHR if the surface
|
||||
becomes no longer available.
|
||||
@ -249,6 +249,18 @@ endif::VK_NN_vi_surface[]
|
||||
|
||||
== Surface Queries
|
||||
|
||||
The capabilities of a swapchain targetting a surface are the intersection of
|
||||
the capabilities of the WSI platform, the native window or display, and the
|
||||
physical device.
|
||||
The resulting capabilities can be obtained with the queries listed below in
|
||||
this section.
|
||||
Capabilities that correspond to image creation parameters are not
|
||||
independent of each other: combinations of parameters that are not supported
|
||||
as reported by flink:vkGetPhysicalDeviceImageFormatProperties are not
|
||||
supported by the surface on that physical device, even if the capabilities
|
||||
taken individually are supported as part of some other parameter
|
||||
combinations.
|
||||
|
||||
[open,refpage='vkGetPhysicalDeviceSurfaceCapabilitiesKHR',desc='Query surface capabilities',type='protos']
|
||||
--
|
||||
|
||||
@ -290,6 +302,10 @@ include::../../api/structs/VkSurfaceCapabilitiesKHR.txt[]
|
||||
the surface.
|
||||
* pname:minImageExtent contains the smallest valid swapchain extent for
|
||||
the surface on the specified device.
|
||||
The pname:width and pname:height of the extent will each be less than or
|
||||
equal to the corresponding pname:width and pname:height of
|
||||
pname:currentExtent, unless pname:currentExtent has the special value
|
||||
described above.
|
||||
* pname:maxImageExtent contains the largest valid swapchain extent for the
|
||||
surface on the specified device.
|
||||
The pname:width and pname:height of the extent will each be greater than
|
||||
@ -892,7 +908,7 @@ In this case, the application can: use any valid elink:VkFormat value.
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
In the initial release of the <<VK_KHR_surface>> and <<VK_KHR_swapchain>>
|
||||
In the initial release of the `VK_KHR_surface` and `<<VK_KHR_swapchain>>`
|
||||
extensions, the token ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR was used.
|
||||
Starting in the 2016-05-13 updates to the extension branches, matching
|
||||
release 1.0.13 of the core API specification,
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -131,17 +131,10 @@ include::../../api/structs/VkSwapchainCreateInfoKHR.txt[]
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
During some situations, sname:VkSwapchainKHR cannot: be created because of
|
||||
the Valid Usage of the pname:imageExtent parameter.
|
||||
|
||||
The flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR may: return in
|
||||
slink:VkSurfaceCapabilitiesKHR a pname:currentExtent that has the
|
||||
pname:width and/or pname:height equal to 0, or that is less than its
|
||||
counterpart in pname:minImageExtent.
|
||||
Similarly, pname:maxImageExtent may: also have 0 values for pname:width
|
||||
and/or pname:height.
|
||||
For example, on some platforms that may: happen while an associated window
|
||||
is minimized.
|
||||
On some platforms, it is normal that pname:maxImageExtent may: become `(0,
|
||||
0)`, for example when the window is minimized.
|
||||
In such a case, it is not possible to create a swapchain due to the Valid
|
||||
Usage requirements.
|
||||
====
|
||||
|
||||
* pname:imageArrayLayers is the number of views in a multiview/stereo
|
||||
@ -227,7 +220,7 @@ E.g., an application may present an image from the old swapchain before an
|
||||
image from the new swapchain is ready to be presented.
|
||||
As usual, flink:vkQueuePresentKHR may: fail if sname:oldSwapchain has
|
||||
entered a state that causes ename:VK_ERROR_OUT_OF_DATE_KHR to be returned.
|
||||
|
||||
|
||||
ifdef::VK_KHR_shared_presentable_image[]
|
||||
The application can: continue to use a shared presentable image obtained
|
||||
from pname:oldSwapchain until a presentable image is acquired from the new
|
||||
@ -347,6 +340,11 @@ ifdef::VK_KHX_device_group[]
|
||||
endif::VK_KHX_device_group[]
|
||||
* [[VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01674]]
|
||||
pname:oldSwapchain must: not be in the retired state
|
||||
* [[VUID-VkSwapchainCreateInfoKHR-imageFormat-01778]]
|
||||
pname:imageFormat, pname:imageUsage, pname:imageExtent, and
|
||||
pname:imageArrayLayers must: be supported for ename:VK_IMAGE_TYPE_2D
|
||||
ename:VK_IMAGE_TILING_OPTIMAL images as reported by
|
||||
flink:vkGetPhysicalDeviceImageFormatProperties.
|
||||
|
||||
****
|
||||
|
||||
@ -612,13 +610,15 @@ include::../../api/protos/vkAcquireNextImageKHR.txt[]
|
||||
pname:swapchain must: not be in the retired state
|
||||
* [[VUID-vkAcquireNextImageKHR-semaphore-01286]]
|
||||
If pname:semaphore is not dlink:VK_NULL_HANDLE it must: be unsignaled
|
||||
* If pname:semaphore is not dlink:VK_NULL_HANDLE it must: not have any
|
||||
* [[VUID-vkAcquireNextImageKHR-semaphore-01779]]
|
||||
If pname:semaphore is not dlink:VK_NULL_HANDLE it must: not have any
|
||||
uncompleted signal or wait operations pending
|
||||
* [[VUID-vkAcquireNextImageKHR-fence-01287]]
|
||||
If pname:fence is not dlink:VK_NULL_HANDLE it must: be unsignaled and
|
||||
must: not be associated with any other queue command that has not yet
|
||||
completed execution on that queue
|
||||
* pname:semaphore and pname:fence must: not both be equal to
|
||||
* [[VUID-vkAcquireNextImageKHR-semaphore-01780]]
|
||||
pname:semaphore and pname:fence must: not both be equal to
|
||||
dlink:VK_NULL_HANDLE
|
||||
****
|
||||
|
||||
@ -919,13 +919,15 @@ succeeds, which the other physical device(s) can: wait upon.
|
||||
pname:swapchain must: not be in the retired state
|
||||
* [[VUID-VkAcquireNextImageInfoKHX-semaphore-01288]]
|
||||
If pname:semaphore is not dlink:VK_NULL_HANDLE it must: be unsignaled
|
||||
* If pname:semaphore is not dlink:VK_NULL_HANDLE it must: not have any
|
||||
* [[VUID-VkAcquireNextImageInfoKHX-semaphore-01781]]
|
||||
If pname:semaphore is not dlink:VK_NULL_HANDLE it must: not have any
|
||||
uncompleted signal or wait operations pending
|
||||
* [[VUID-VkAcquireNextImageInfoKHX-fence-01289]]
|
||||
If pname:fence is not dlink:VK_NULL_HANDLE it must: be unsignaled and
|
||||
must: not be associated with any other queue command that has not yet
|
||||
completed execution on that queue
|
||||
* pname:semaphore and pname:fence must: not both be equal to
|
||||
* [[VUID-VkAcquireNextImageInfoKHX-semaphore-01782]]
|
||||
pname:semaphore and pname:fence must: not both be equal to
|
||||
dlink:VK_NULL_HANDLE
|
||||
* [[VUID-VkAcquireNextImageInfoKHX-deviceMask-01290]]
|
||||
pname:deviceMask must: be a valid device mask
|
||||
@ -985,6 +987,29 @@ This automatic visibility operation for an image happens-after the semaphore
|
||||
signal operation, and happens-before the presentation engine accesses the
|
||||
image.
|
||||
|
||||
Queueing an image for presentation defines a set of _queue operations_,
|
||||
including waiting on the semaphores and submitting a presentation request to
|
||||
the presentation engine.
|
||||
However, the scope of this set of queue operations does not include the
|
||||
actual processing of the image by the presentation engine.
|
||||
|
||||
If fname:vkQueuePresentKHR fails to enqueue the corresponding set of queue
|
||||
operations, it may: return ename:VK_ERROR_OUT_OF_HOST_MEMORY or
|
||||
ename:VK_ERROR_OUT_OF_DEVICE_MEMORY.
|
||||
If it does, the implementation must: ensure that the state and contents of
|
||||
any resources or synchronization primitives referenced is unaffected by the
|
||||
call or its failure.
|
||||
|
||||
If fname:vkQueuePresentKHR fails in such a way that the implementation can:
|
||||
not make that guarantee, the implementation must: return
|
||||
ename:VK_ERROR_DEVICE_LOST.
|
||||
|
||||
However, if the presentation request is rejected by the presentation engine
|
||||
with an error ename:VK_ERROR_OUT_OF_DATE_KHR or
|
||||
ename:VK_ERROR_SURFACE_LOST_KHR, the set of queue operations are still
|
||||
considered to be enqueued and thus any semaphore to be waited on gets
|
||||
unsignaled when the corresponding queue operation is complete.
|
||||
|
||||
include::../../validity/protos/vkQueuePresentKHR.txt[]
|
||||
--
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -51,5 +51,19 @@ include::../../validity/structs/VkWin32SurfaceCreateInfoKHR.txt[]
|
||||
--
|
||||
|
||||
With Win32, pname:minImageExtent, pname:maxImageExtent, and
|
||||
pname:currentExtent are the window size.
|
||||
Therefore, a swapchain's pname:imageExtent must: match the window's size.
|
||||
pname:currentExtent must: always equal the window size.
|
||||
|
||||
The pname:currentExtent of a Win32 surface must: have both pname:width and
|
||||
pname:height greater than 0, or both of them 0.
|
||||
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
Due to above restrictions, it is only possible to create a new swapchain on
|
||||
this platform with pname:imageExtent being equal to the current size of the
|
||||
window.
|
||||
|
||||
The window size may: become [eq]#(0, 0)# on this platform (e.g. when the
|
||||
window is minimized), and so a swapchain cannot: be created until the size
|
||||
changes.
|
||||
====
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -54,8 +54,22 @@ include::../../validity/structs/VkXcbSurfaceCreateInfoKHR.txt[]
|
||||
--
|
||||
|
||||
With Xcb, pname:minImageExtent, pname:maxImageExtent, and
|
||||
pname:currentExtent are the window size.
|
||||
Therefore, a swapchain's pname:imageExtent must: match the window's size.
|
||||
pname:currentExtent must: always equal the window size.
|
||||
|
||||
The pname:currentExtent of an Xcb surface must: have both pname:width and
|
||||
pname:height greater than 0, or both of them 0.
|
||||
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
Due to above restrictions, it is only possible to create a new swapchain on
|
||||
this platform with pname:imageExtent being equal to the current size of the
|
||||
window.
|
||||
|
||||
The window size may: become [eq]#(0, 0)# on this platform (e.g. when the
|
||||
window is minimized), and so a swapchain cannot: be created until the size
|
||||
changes.
|
||||
====
|
||||
|
||||
Some Vulkan functions may: send protocol over the specified xcb connection
|
||||
when using a swapchain or presentable images created from a
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -53,8 +53,22 @@ include::../../validity/structs/VkXlibSurfaceCreateInfoKHR.txt[]
|
||||
--
|
||||
|
||||
With Xlib, pname:minImageExtent, pname:maxImageExtent, and
|
||||
pname:currentExtent are the window size.
|
||||
Therefore, a swapchain's pname:imageExtent must: match the window's size.
|
||||
pname:currentExtent must: always equal the window size.
|
||||
|
||||
The pname:currentExtent of an Xlib surface must: have both pname:width and
|
||||
pname:height greater than 0, or both of them 0.
|
||||
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
Due to above restrictions, it is only possible to create a new swapchain on
|
||||
this platform with pname:imageExtent being equal to the current size of the
|
||||
window.
|
||||
|
||||
The window size may: become [eq]#(0, 0)# on this platform (e.g. when the
|
||||
window is minimized), and so a swapchain cannot: be created until the size
|
||||
changes.
|
||||
====
|
||||
|
||||
Some Vulkan functions may: send protocol over the specified Xlib
|
||||
code:Display connection when using a swapchain or presentable images created
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -267,7 +267,7 @@ include::../../validity/structs/VkObjectTablePipelineEntryNVX.txt[]
|
||||
|
||||
include::../../api/structs/VkObjectTableDescriptorSetEntryNVX.txt[]
|
||||
|
||||
* pname:layout specifies the sname:VkPipelineLayout that the
|
||||
* pname:pipelineLayout specifies the sname:VkPipelineLayout that the
|
||||
pname:descriptorSet is used with.
|
||||
* pname:descriptorSet specifies the sname:VkDescriptorSet that can be
|
||||
bound with this entry.
|
||||
@ -322,10 +322,10 @@ include::../../validity/structs/VkObjectTableIndexBufferEntryNVX.txt[]
|
||||
|
||||
include::../../api/structs/VkObjectTablePushConstantEntryNVX.txt[]
|
||||
|
||||
* pname:layout specifies the sname:VkPipelineLayout that pushconstants
|
||||
using this pname:objectIndex are used with.
|
||||
* pname:descriptorSet stageFlags the sname:VkShaderStageFlags that
|
||||
pushconstants using this pname:objectIndex are used with.
|
||||
* pname:pipelineLayout specifies the sname:VkPipelineLayout that the
|
||||
pushconstants are used with
|
||||
* pname:stageFlags specifies the sname:VkShaderStageFlags that the
|
||||
pushconstants are used with
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
|
@ -58,9 +58,9 @@ ifdef::editing-notes[]
|
||||
.editing-note
|
||||
==================
|
||||
(Jon) If additional (non-Win32) bits are added to the possible memory types,
|
||||
this type should move to the +VK_NV_external_memory_capabilities+ section,
|
||||
and each bit would then be protected by ifdefs for the extension it's
|
||||
defined by.
|
||||
this type should move to the `<<VK_NV_external_memory_capabilities>>`
|
||||
section, and each bit would then be protected by ifdefs for the extension
|
||||
it's defined by.
|
||||
==================
|
||||
endif::editing-notes[]
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -2721,9 +2721,9 @@ If the descriptor type is ename:VK_DESCRIPTOR_TYPE_SAMPLER, the
|
||||
pname:pImageInfo parameter is ignored and the immutable sampler is taken
|
||||
from the push descriptor set layout in the pipeline layout.
|
||||
If the descriptor type is ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
|
||||
the pname:sampler member of the pname:pImageInfo parameter is ignored
|
||||
and the immutable sampler is taken from the push descriptor set layout in
|
||||
the pipeline layout.
|
||||
the pname:sampler member of the pname:pImageInfo parameter is ignored and
|
||||
the immutable sampler is taken from the push descriptor set layout in the
|
||||
pipeline layout.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
||||
// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
@ -725,7 +725,7 @@ ifdef::VK_KHR_maintenance1[]
|
||||
ifdef::VK_AMD_negative_viewport_height[]
|
||||
* [[VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374]]
|
||||
pname:ppEnabledExtensionNames must: not contain both
|
||||
<<VK_KHR_maintenance1>> and <<VK_AMD_negative_viewport_height>>
|
||||
`<<VK_KHR_maintenance1>>` and `<<VK_AMD_negative_viewport_height>>`
|
||||
endif::VK_AMD_negative_viewport_height[]
|
||||
endif::VK_KHR_maintenance1[]
|
||||
****
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user