commit
95da63ce68
|
@ -9,24 +9,24 @@ include::meta/VK_AMD_negative_viewport_height.txt[]
|
||||||
- Graham Sellers, AMD
|
- Graham Sellers, AMD
|
||||||
- Baldur Karlsson
|
- Baldur Karlsson
|
||||||
*Interactions and External Dependencies*::
|
*Interactions and External Dependencies*::
|
||||||
- Deprecated by VK_KHR_maintenance1
|
- Deprecated by `VK_KHR_maintenance1`
|
||||||
- Deprecated by Vulkan 1.1
|
- Deprecated by Vulkan 1.1
|
||||||
|
|
||||||
This extension allows an application to specify a negative viewport height.
|
This extension allows an application to specify a negative viewport height.
|
||||||
The result is that the viewport transformation will flip along the y-axis.
|
The result is that the viewport transformation will flip along the y-axis.
|
||||||
|
|
||||||
* Allow negative height to be specified in the
|
* Allow negative height to be specified in the
|
||||||
slink::VkViewport::pname:height field to perform y-inversion of the
|
slink:VkViewport::pname:height field to perform y-inversion of the
|
||||||
clip-space to framebuffer-space transform.
|
clip-space to framebuffer-space transform.
|
||||||
This allows apps to avoid having to use gl_Position.y = -gl_Position.y
|
This allows apps to avoid having to use `gl_Position.y = -gl_Position.y`
|
||||||
in shaders also targeting other APIs.
|
in shaders also targeting other APIs.
|
||||||
|
|
||||||
=== Deprecation by VK_KHR_maintenance1 and Vulkan 1.1
|
=== Deprecation by VK_KHR_maintenance1 and Vulkan 1.1
|
||||||
|
|
||||||
Functionality in this extension is included in VK_KHR_maintenance1 and
|
Functionality in this extension is included in `VK_KHR_maintenance1` and
|
||||||
Vulkan 1.1.
|
Vulkan 1.1.
|
||||||
Due to some slight behavioral differences, this extension must: not be
|
Due to some slight behavioral differences, this extension must: not be
|
||||||
enabled alongside VK_KHR_maintenance1, or in an instance created with
|
enabled alongside `VK_KHR_maintenance1`, or in an instance created with
|
||||||
version 1.1 or later requested in slink:VkApplicationInfo::pname:apiVersion.
|
version 1.1 or later requested in slink:VkApplicationInfo::pname:apiVersion.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ Specification.
|
||||||
.Mapping of Vulkan BC formats to descriptions
|
.Mapping of Vulkan BC formats to descriptions
|
||||||
[width="90%",options="header",cols="5,4"]
|
[width="90%",options="header",cols="5,4"]
|
||||||
|====
|
|====
|
||||||
| VkFormat | <<data-format,Khronos Data Format Specification>> description
|
| elink:VkFormat | <<data-format,Khronos Data Format Specification>> description
|
||||||
2+^| Formats described in the "`S3TC Compressed Texture Image Formats`" chapter
|
2+^| Formats described in the "`S3TC Compressed Texture Image Formats`" chapter
|
||||||
| ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK |BC1 with no alpha
|
| ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK |BC1 with no alpha
|
||||||
| ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK |BC1 with no alpha, sRGB-encoded
|
| ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK |BC1 with no alpha, sRGB-encoded
|
||||||
|
@ -63,7 +63,7 @@ Formats`" chapter of the <<data-format,Khronos Data Format Specification>>.
|
||||||
.Mapping of Vulkan ETC formats to descriptions
|
.Mapping of Vulkan ETC formats to descriptions
|
||||||
[options="header",cols="1,1"]
|
[options="header",cols="1,1"]
|
||||||
|====
|
|====
|
||||||
| VkFormat | <<data-format,Khronos Data Format Specification>> description
|
| elink:VkFormat | <<data-format,Khronos Data Format Specification>> description
|
||||||
| ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK |RGB ETC2
|
| ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK |RGB ETC2
|
||||||
| ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK |RGB ETC2 with sRGB encoding
|
| ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK |RGB ETC2 with sRGB encoding
|
||||||
| ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK |RGB ETC2 with punch-through alpha
|
| ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK |RGB ETC2 with punch-through alpha
|
||||||
|
@ -87,7 +87,7 @@ chapter of the <<data-format,Khronos Data Format Specification>>.
|
||||||
.Mapping of Vulkan ASTC formats to descriptions
|
.Mapping of Vulkan ASTC formats to descriptions
|
||||||
[width="75%",options="header",cols="63%,15%,22%"]
|
[width="75%",options="header",cols="63%,15%,22%"]
|
||||||
|====
|
|====
|
||||||
| VkFormat ^| Compressed texel block dimensions ^| sRGB-encoded
|
| elink:VkFormat ^| Compressed texel block dimensions ^| sRGB-encoded
|
||||||
| ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK ^|[eq]#4 {times} 4# ^|No
|
| ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK ^|[eq]#4 {times} 4# ^|No
|
||||||
| ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK ^|[eq]#4 {times} 4# ^|Yes
|
| ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK ^|[eq]#4 {times} 4# ^|Yes
|
||||||
| ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK ^|[eq]#5 {times} 4# ^|No
|
| ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK ^|[eq]#5 {times} 4# ^|No
|
||||||
|
|
|
@ -157,7 +157,7 @@ endif::VK_AMD_shader_fragment_mask[]
|
||||||
Color Renderable Format::
|
Color Renderable Format::
|
||||||
A elink:VkFormat where ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT is
|
A elink:VkFormat where ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT is
|
||||||
set in the pname:optimalTilingFeatures or pname:linearTilingFeatures
|
set in the pname:optimalTilingFeatures or pname:linearTilingFeatures
|
||||||
field of VkFormatProperties::optimalTilingFeatures returned by
|
member of slink:VkFormatProperties returned by
|
||||||
flink:vkGetPhysicalDeviceFormatProperties, depending on the tiling used.
|
flink:vkGetPhysicalDeviceFormatProperties, depending on the tiling used.
|
||||||
|
|
||||||
Color Sample Mask::
|
Color Sample Mask::
|
||||||
|
|
|
@ -69,13 +69,13 @@ command to <<vkEnumerateInstanceVersion, enumerate the instance version>>.
|
||||||
|
|
||||||
=== New Object Types
|
=== New Object Types
|
||||||
|
|
||||||
* VkDescriptorUpdateTemplate
|
* slink:VkDescriptorUpdateTemplate
|
||||||
* VkSamplerYcbcrConversion
|
* slink:VkSamplerYcbcrConversion
|
||||||
|
|
||||||
|
|
||||||
=== New Defines
|
=== New Defines
|
||||||
|
|
||||||
* VK_API_VERSION_1_1
|
* dlink:VK_API_VERSION_1_1
|
||||||
|
|
||||||
|
|
||||||
=== New Enum Constants
|
=== New Enum Constants
|
||||||
|
|
|
@ -6,7 +6,7 @@ a slink:VkShaderModuleValidationCacheCreateInfoEXT to the pname:pNext chain
|
||||||
of the slink:VkShaderModuleCreateInfo structure, specifying the cache object
|
of the slink:VkShaderModuleCreateInfo structure, specifying the cache object
|
||||||
to use.
|
to use.
|
||||||
|
|
||||||
The VkShaderModuleValidationCacheCreateInfoEXT struct is defined as:
|
The sname:VkShaderModuleValidationCacheCreateInfoEXT struct is defined as:
|
||||||
|
|
||||||
include::../../api/structs/VkShaderModuleValidationCacheCreateInfoEXT.txt[]
|
include::../../api/structs/VkShaderModuleValidationCacheCreateInfoEXT.txt[]
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ include::../../api/structs/VkShaderModuleValidationCacheCreateInfoEXT.txt[]
|
||||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||||
* pname:validationCache is the validation cache object from which the
|
* pname:validationCache is the validation cache object from which the
|
||||||
results of prior validation attempts will be written, and to which new
|
results of prior validation attempts will be written, and to which new
|
||||||
validation results for this VkShaderModule will be written (if not
|
validation results for this slink:VkShaderModule will be written (if not
|
||||||
already present).
|
already present).
|
||||||
|
|
||||||
include::../../validity/structs/VkShaderModuleValidationCacheCreateInfoEXT.txt[]
|
include::../../validity/structs/VkShaderModuleValidationCacheCreateInfoEXT.txt[]
|
||||||
|
|
|
@ -169,7 +169,7 @@ include::../api/protos/vkCreateCommandPool.txt[]
|
||||||
.Valid Usage
|
.Valid Usage
|
||||||
****
|
****
|
||||||
* [[VUID-vkCreateCommandPool-queueFamilyIndex-01937]]
|
* [[VUID-vkCreateCommandPool-queueFamilyIndex-01937]]
|
||||||
sname:pCreateInfo::pname:queueFamilyIndex must: be the index of a queue
|
pname:pCreateInfo::pname:queueFamilyIndex must: be the index of a queue
|
||||||
family available in the logical device pname:device.
|
family available in the logical device pname:device.
|
||||||
****
|
****
|
||||||
|
|
||||||
|
@ -1362,7 +1362,7 @@ command buffer becomes <<commandbuffers-lifecycle, invalid>>.
|
||||||
* [[VUID-vkCmdExecuteCommands-pInheritanceInfo-00098]]
|
* [[VUID-vkCmdExecuteCommands-pInheritanceInfo-00098]]
|
||||||
If fname:vkCmdExecuteCommands is being called within a render pass
|
If fname:vkCmdExecuteCommands is being called within a render pass
|
||||||
instance, the render passes specified in the
|
instance, the render passes specified in the
|
||||||
pname::pBeginInfo::pname:pInheritanceInfo::pname:renderPass members of
|
pname:pBeginInfo::pname:pInheritanceInfo::pname:renderPass members of
|
||||||
the flink:vkBeginCommandBuffer commands used to begin recording each
|
the flink:vkBeginCommandBuffer commands used to begin recording each
|
||||||
element of pname:pCommandBuffers must: be
|
element of pname:pCommandBuffers must: be
|
||||||
<<renderpass-compatibility,compatible>> with the current render pass.
|
<<renderpass-compatibility,compatible>> with the current render pass.
|
||||||
|
|
|
@ -1325,7 +1325,7 @@ endif::VK_EXT_global_priority[]
|
||||||
[open,refpage='vkGetDeviceQueue',desc='Get a queue handle from a device',type='protos']
|
[open,refpage='vkGetDeviceQueue',desc='Get a queue handle from a device',type='protos']
|
||||||
--
|
--
|
||||||
|
|
||||||
To retrieve a handle to a VkQueue object, call:
|
To retrieve a handle to a slink:VkQueue object, call:
|
||||||
|
|
||||||
include::../api/protos/vkGetDeviceQueue.txt[]
|
include::../api/protos/vkGetDeviceQueue.txt[]
|
||||||
|
|
||||||
|
@ -1367,7 +1367,7 @@ ifdef::VK_VERSION_1_1[]
|
||||||
[open,refpage='vkGetDeviceQueue2',desc='Get a queue handle from a device',type='protos']
|
[open,refpage='vkGetDeviceQueue2',desc='Get a queue handle from a device',type='protos']
|
||||||
--
|
--
|
||||||
|
|
||||||
To retrieve a handle to a VkQueue object with specific
|
To retrieve a handle to a slink:VkQueue object with specific
|
||||||
pname:VkDeviceQueueCreateFlags creation flags, call:
|
pname:VkDeviceQueueCreateFlags creation flags, call:
|
||||||
|
|
||||||
include::../api/protos/vkGetDeviceQueue2.txt[]
|
include::../api/protos/vkGetDeviceQueue2.txt[]
|
||||||
|
|
|
@ -420,7 +420,7 @@ When the command is executed, a global workgroup consisting of
|
||||||
is assembled, with code:WorkgroupId values ranging from [eq]#[baseGroup,
|
is assembled, with code:WorkgroupId values ranging from [eq]#[baseGroup,
|
||||||
baseGroup {plus} groupCount)# in each component.
|
baseGroup {plus} groupCount)# in each component.
|
||||||
flink:vkCmdDispatch is equivalent to
|
flink:vkCmdDispatch is equivalent to
|
||||||
vkCmdDispatchBase(0,0,0,groupCountX,groupCountY,groupCountZ).
|
`vkCmdDispatchBase(0,0,0,groupCountX,groupCountY,groupCountZ)`.
|
||||||
|
|
||||||
.Valid Usage
|
.Valid Usage
|
||||||
****
|
****
|
||||||
|
|
|
@ -3387,7 +3387,7 @@ It may: not be possible to reach this limit in every stage.
|
||||||
|
|
||||||
8:: The minimum ptext:maxDescriptorSet* limit is _n_ times the corresponding
|
8:: The minimum ptext:maxDescriptorSet* limit is _n_ times the corresponding
|
||||||
_specification_ minimum ptext:maxPerStageDescriptor* limit, where _n_ is
|
_specification_ minimum ptext:maxPerStageDescriptor* limit, where _n_ is
|
||||||
the number of shader stages supported by the VkPhysicalDevice.
|
the number of shader stages supported by the slink:VkPhysicalDevice.
|
||||||
If all shader stages are supported, _n_ = 6 (vertex, tessellation
|
If all shader stages are supported, _n_ = 6 (vertex, tessellation
|
||||||
control, tessellation evaluation, geometry, fragment, compute).
|
control, tessellation evaluation, geometry, fragment, compute).
|
||||||
|
|
||||||
|
@ -4718,7 +4718,9 @@ element, rather than individual components occupying a single data element:
|
||||||
A "`format`" is represented by a single enum value.
|
A "`format`" is represented by a single enum value.
|
||||||
The name of a format is usually built up by using the following pattern:
|
The name of a format is usually built up by using the following pattern:
|
||||||
|
|
||||||
|
....
|
||||||
VK_FORMAT_{component-format|compression-scheme}_{numeric-format}
|
VK_FORMAT_{component-format|compression-scheme}_{numeric-format}
|
||||||
|
....
|
||||||
|
|
||||||
The component-format indicates either the size of the R, G, B, and A
|
The component-format indicates either the size of the R, G, B, and A
|
||||||
components (if they are present) in the case of a color format, or the size
|
components (if they are present) in the case of a color format, or the size
|
||||||
|
|
|
@ -773,7 +773,7 @@ stencil value.
|
||||||
[open,refpage='VkCompareOp',desc='Stencil comparison function',type='enums']
|
[open,refpage='VkCompareOp',desc='Stencil comparison function',type='enums']
|
||||||
--
|
--
|
||||||
|
|
||||||
Possible values of VkStencilOpState::pname:compareOp, specifying the stencil
|
Possible values of slink:VkStencilOpState::pname:compareOp, specifying the stencil
|
||||||
comparison function, are:
|
comparison function, are:
|
||||||
|
|
||||||
include::../api/enums/VkCompareOp.txt[]
|
include::../api/enums/VkCompareOp.txt[]
|
||||||
|
|
|
@ -225,7 +225,7 @@ The semantics of each enum value is described in the table below:
|
||||||
.Blend Factors
|
.Blend Factors
|
||||||
[width="100%",options="header",align="center",cols="59%,28%,13%"]
|
[width="100%",options="header",align="center",cols="59%,28%,13%"]
|
||||||
|====
|
|====
|
||||||
|VkBlendFactor | RGB Blend Factors [eq]#(S~r~,S~g~,S~b~)# or [eq]#(D~r~,D~g~,D~b~)# | Alpha Blend Factor ([eq]#S~a~# or [eq]#D~a~#)
|
|elink:VkBlendFactor | RGB Blend Factors [eq]#(S~r~,S~g~,S~b~)# or [eq]#(D~r~,D~g~,D~b~)# | Alpha Blend Factor ([eq]#S~a~# or [eq]#D~a~#)
|
||||||
|ename:VK_BLEND_FACTOR_ZERO | [eq]#(0,0,0)# | [eq]#0#
|
|ename:VK_BLEND_FACTOR_ZERO | [eq]#(0,0,0)# | [eq]#0#
|
||||||
|ename:VK_BLEND_FACTOR_ONE | [eq]#(1,1,1)# | [eq]#1#
|
|ename:VK_BLEND_FACTOR_ONE | [eq]#(1,1,1)# | [eq]#1#
|
||||||
|ename:VK_BLEND_FACTOR_SRC_COLOR | [eq]#(R~s0~,G~s0~,B~s0~)# | [eq]#A~s0~#
|
|ename:VK_BLEND_FACTOR_SRC_COLOR | [eq]#(R~s0~,G~s0~,B~s0~)# | [eq]#A~s0~#
|
||||||
|
@ -348,7 +348,7 @@ below:
|
||||||
.Basic Blend Operations
|
.Basic Blend Operations
|
||||||
[width="100%",cols="45%,30%,25%",options="header",align="center"]
|
[width="100%",cols="45%,30%,25%",options="header",align="center"]
|
||||||
|====
|
|====
|
||||||
|VkBlendOp | RGB Components | Alpha Component
|
|elink:VkBlendOp | RGB Components | Alpha Component
|
||||||
|
|
||||||
|ename:VK_BLEND_OP_ADD
|
|ename:VK_BLEND_OP_ADD
|
||||||
| [eq]#R = R~s0~ {times} S~r~ {plus} R~d~ {times} D~r~# +
|
| [eq]#R = R~s0~ {times} S~r~ {plus} R~d~ {times} D~r~# +
|
||||||
|
|
|
@ -345,7 +345,7 @@ Architecture Overview">> document for additional information.
|
||||||
====
|
====
|
||||||
Providing a `NULL` sname:VkInstanceCreateInfo::pname:pApplicationInfo or
|
Providing a `NULL` sname:VkInstanceCreateInfo::pname:pApplicationInfo or
|
||||||
providing an pname:apiVersion of 0 is equivalent to providing an
|
providing an pname:apiVersion of 0 is equivalent to providing an
|
||||||
pname:apiVersion of VK_MAKE_VERSION(1,0,0).
|
pname:apiVersion of `VK_MAKE_VERSION(1,0,0)`.
|
||||||
====
|
====
|
||||||
endif::VK_VERSION_1_1[]
|
endif::VK_VERSION_1_1[]
|
||||||
|
|
||||||
|
|
|
@ -1394,7 +1394,7 @@ ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
|
||||||
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
|
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
|
||||||
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or
|
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or
|
||||||
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
|
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
|
||||||
VkExportMemoryWin32HandleInfoKHR must: not be in the pname:pNext chain
|
sname:VkExportMemoryWin32HandleInfoKHR must: not be in the pname:pNext chain
|
||||||
of slink:VkMemoryAllocateInfo.
|
of slink:VkMemoryAllocateInfo.
|
||||||
****
|
****
|
||||||
|
|
||||||
|
|
|
@ -590,19 +590,19 @@ the number of samples of the color attachments used in the subpass or, if
|
||||||
the subpass does not use any color attachments,
|
the subpass does not use any color attachments,
|
||||||
endif::VK_AMD_mixed_attachment_samples[]
|
endif::VK_AMD_mixed_attachment_samples[]
|
||||||
the value of
|
the value of
|
||||||
slink:VkPipelineMultisampleStateCreateInfo::pname.rasterizationSamples
|
slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples
|
||||||
specified at pipeline creation time.
|
specified at pipeline creation time.
|
||||||
These are associated with the samples in an implementation-dependent manner.
|
These are associated with the samples in an implementation-dependent manner.
|
||||||
When pname:minSampleShadingFactor is 1.0, a separate set of associated data
|
When pname:minSampleShadingFactor is `1.0`, a separate set of associated
|
||||||
are evaluated for each sample, and each set of values is evaluated at the
|
data are evaluated for each sample, and each set of values is evaluated at
|
||||||
sample location.
|
the sample location.
|
||||||
|
|
||||||
Sample shading is enabled for a graphics pipeline:
|
Sample shading is enabled for a graphics pipeline:
|
||||||
|
|
||||||
* If the interface of the fragment shader entry point of the graphics
|
* If the interface of the fragment shader entry point of the graphics
|
||||||
pipeline includes an input variable decorated with code:SampleId or
|
pipeline includes an input variable decorated with code:SampleId or
|
||||||
code:SamplePosition.
|
code:SamplePosition.
|
||||||
In this case pname:minSampleShadingFactor takes the value 1.0.
|
In this case pname:minSampleShadingFactor takes the value `1.0`.
|
||||||
* Else if the pname:sampleShadingEnable member of the
|
* Else if the pname:sampleShadingEnable member of the
|
||||||
slink:VkPipelineMultisampleStateCreateInfo structure specified when
|
slink:VkPipelineMultisampleStateCreateInfo structure specified when
|
||||||
creating the graphics pipeline is set to ename:VK_TRUE.
|
creating the graphics pipeline is set to ename:VK_TRUE.
|
||||||
|
|
|
@ -385,16 +385,16 @@ The values written to code:Position and code:ViewportMaskNV must: not depend
|
||||||
on the values written to code:PositionPerViewNV and
|
on the values written to code:PositionPerViewNV and
|
||||||
code:ViewportMaskPerViewNV, or vice versa (to allow compilers to eliminate
|
code:ViewportMaskPerViewNV, or vice versa (to allow compilers to eliminate
|
||||||
the unused outputs).
|
the unused outputs).
|
||||||
All attributes that do not have *PerViewNV counterparts must: not depend on
|
All attributes that do not have `*PerViewNV` counterparts must: not depend
|
||||||
code:ViewIndex.
|
on code:ViewIndex.
|
||||||
|
|
||||||
Per-view attributes are all-or-nothing for a subpass.
|
Per-view attributes are all-or-nothing for a subpass.
|
||||||
That is, all pipelines compiled against a subpass that includes the
|
That is, all pipelines compiled against a subpass that includes the
|
||||||
ename:VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX bit must: write
|
ename:VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX bit must: write
|
||||||
per-view attributes to the *PerViewNV[] shader outputs, in addition to the
|
per-view attributes to the `*PerViewNV[]` shader outputs, in addition to the
|
||||||
non-per-view (e.g. code:Position) outputs.
|
non-per-view (e.g. code:Position) outputs.
|
||||||
Pipelines compiled against a subpass that does not include this bit must:
|
Pipelines compiled against a subpass that does not include this bit must:
|
||||||
not include the *PerViewNV[] outputs in their interfaces.
|
not include the `*PerViewNV[]` outputs in their interfaces.
|
||||||
|
|
||||||
endif::VK_NVX_multiview_per_view_attributes[]
|
endif::VK_NVX_multiview_per_view_attributes[]
|
||||||
|
|
||||||
|
@ -913,7 +913,7 @@ ifdef::VK_NVX_multiview_per_view_attributes[]
|
||||||
shaders compiled for this subpass write the attributes for all views in
|
shaders compiled for this subpass write the attributes for all views in
|
||||||
a single invocation of each vertex processing stage.
|
a single invocation of each vertex processing stage.
|
||||||
All pipelines compiled against a subpass that includes this bit must:
|
All pipelines compiled against a subpass that includes this bit must:
|
||||||
write per-view attributes to the code:*PerViewNV[] shader outputs, in
|
write per-view attributes to the `*PerViewNV[]` shader outputs, in
|
||||||
addition to the non-per-view (e.g. code:Position) outputs.
|
addition to the non-per-view (e.g. code:Position) outputs.
|
||||||
* ename:VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX specifies
|
* ename:VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX specifies
|
||||||
that shaders compiled for this subpass use per-view positions which only
|
that shaders compiled for this subpass use per-view positions which only
|
||||||
|
|
|
@ -138,7 +138,7 @@ ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||||
If the pname:pNext chain contains an instance of
|
If the pname:pNext chain contains an instance of
|
||||||
slink:VkExternalMemoryBufferCreateInfo, its pname:handleTypes member
|
slink:VkExternalMemoryBufferCreateInfo, its pname:handleTypes member
|
||||||
must: only contain bits that are also in
|
must: only contain bits that are also in
|
||||||
slink:VkExternalBufferProperties::pname:externalMemoryProperties.pname:compatibleHandleTypes,
|
slink:VkExternalBufferProperties::pname:externalMemoryProperties.compatibleHandleTypes,
|
||||||
as returned by flink:vkGetPhysicalDeviceExternalBufferProperties with
|
as returned by flink:vkGetPhysicalDeviceExternalBufferProperties with
|
||||||
pname:pExternalBufferInfo\->pname:handleType equal to any one of the
|
pname:pExternalBufferInfo\->pname:handleType equal to any one of the
|
||||||
handle types specified in
|
handle types specified in
|
||||||
|
@ -623,7 +623,7 @@ endif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
|
||||||
ifndef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
|
ifndef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
|
||||||
flink:vkGetPhysicalDeviceImageFormatProperties.
|
flink:vkGetPhysicalDeviceImageFormatProperties.
|
||||||
endif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
|
endif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
|
||||||
returns success and the parameters to vkCreateImage are all within the
|
returns success and the parameters to fname:vkCreateImage are all within the
|
||||||
returned limits, fname:vkCreateImage must: fail and return
|
returned limits, fname:vkCreateImage must: fail and return
|
||||||
ename:VK_ERROR_OUT_OF_DEVICE_MEMORY if the resulting size of the image would
|
ename:VK_ERROR_OUT_OF_DEVICE_MEMORY if the resulting size of the image would
|
||||||
be larger than pname:maxResourceSize.
|
be larger than pname:maxResourceSize.
|
||||||
|
@ -901,7 +901,7 @@ endif::VK_NV_external_memory[]
|
||||||
If the pname:pNext chain contains an instance of
|
If the pname:pNext chain contains an instance of
|
||||||
slink:VkExternalMemoryImageCreateInfo, its pname:handleTypes member
|
slink:VkExternalMemoryImageCreateInfo, its pname:handleTypes member
|
||||||
must: only contain bits that are also in
|
must: only contain bits that are also in
|
||||||
slink:VkExternalImageFormatProperties::pname:externalMemoryProperties::pname:compatibleHandleTypes,
|
slink:VkExternalImageFormatProperties::pname:externalMemoryProperties.compatibleHandleTypes,
|
||||||
as returned by flink:vkGetPhysicalDeviceImageFormatProperties2 with
|
as returned by flink:vkGetPhysicalDeviceImageFormatProperties2 with
|
||||||
pname:format, pname:imageType, pname:tiling, pname:usage, and
|
pname:format, pname:imageType, pname:tiling, pname:usage, and
|
||||||
pname:flags equal to those in this structure, and with an instance of
|
pname:flags equal to those in this structure, and with an instance of
|
||||||
|
@ -914,7 +914,7 @@ ifdef::VK_NV_external_memory+VK_NV_external_memory_capabilities[]
|
||||||
If the pname:pNext chain contains an instance of
|
If the pname:pNext chain contains an instance of
|
||||||
slink:VkExternalMemoryImageCreateInfoNV, its pname:handleTypes member
|
slink:VkExternalMemoryImageCreateInfoNV, its pname:handleTypes member
|
||||||
must: only contain bits that are also in
|
must: only contain bits that are also in
|
||||||
slink:VkExternalImageFormatPropertiesNV::pname:externalMemoryProperties::pname:compatibleHandleTypes,
|
slink:VkExternalImageFormatPropertiesNV::pname:externalMemoryProperties.compatibleHandleTypes,
|
||||||
as returned by flink:vkGetPhysicalDeviceExternalImageFormatPropertiesNV
|
as returned by flink:vkGetPhysicalDeviceExternalImageFormatPropertiesNV
|
||||||
with pname:format, pname:imageType, pname:tiling, pname:usage, and
|
with pname:format, pname:imageType, pname:tiling, pname:usage, and
|
||||||
pname:flags equal to those in this structure, and with
|
pname:flags equal to those in this structure, and with
|
||||||
|
|
|
@ -1137,8 +1137,8 @@ ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT
|
||||||
* [[VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447]]
|
* [[VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447]]
|
||||||
If slink:VkExportFenceCreateInfo::pname:handleTypes does not include
|
If slink:VkExportFenceCreateInfo::pname:handleTypes does not include
|
||||||
ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
|
ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
|
||||||
VkExportFenceWin32HandleInfoKHR must: not be in the pname:pNext chain of
|
sname:VkExportFenceWin32HandleInfoKHR must: not be in the pname:pNext
|
||||||
slink:VkFenceCreateInfo.
|
chain of slink:VkFenceCreateInfo.
|
||||||
****
|
****
|
||||||
|
|
||||||
include::../validity/structs/VkExportFenceWin32HandleInfoKHR.txt[]
|
include::../validity/structs/VkExportFenceWin32HandleInfoKHR.txt[]
|
||||||
|
@ -1246,18 +1246,18 @@ file descriptor when it is no longer needed.
|
||||||
.Note
|
.Note
|
||||||
====
|
====
|
||||||
Ownership can be released in many ways.
|
Ownership can be released in many ways.
|
||||||
For example, the application can call fname:close() on the file descriptor,
|
For example, the application can call code:close() on the file descriptor,
|
||||||
or transfer ownership back to Vulkan by using the file descriptor to import
|
or transfer ownership back to Vulkan by using the file descriptor to import
|
||||||
a fence payload.
|
a fence payload.
|
||||||
====
|
====
|
||||||
|
|
||||||
If pname:pGetFdInfo::pname:handleType is
|
If pname:pGetFdInfo\->pname:handleType is
|
||||||
ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT and the fence is signaled at
|
ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT and the fence is signaled at
|
||||||
the time `vkGetFenceFdKHR` is called, pname:pFd may: return the value `-1`
|
the time fname:vkGetFenceFdKHR is called, pname:pFd may: return the value
|
||||||
instead of a valid file descriptor.
|
`-1` instead of a valid file descriptor.
|
||||||
|
|
||||||
Where supported by the operating system, the implementation must: set the
|
Where supported by the operating system, the implementation must: set the
|
||||||
file descriptor to be closed automatically when an fname:execve system call
|
file descriptor to be closed automatically when an code:execve system call
|
||||||
is made.
|
is made.
|
||||||
|
|
||||||
Exporting a file descriptor from a fence may: have side effects depending on
|
Exporting a file descriptor from a fence may: have side effects depending on
|
||||||
|
@ -2204,12 +2204,12 @@ file descriptor when it is no longer needed.
|
||||||
.Note
|
.Note
|
||||||
====
|
====
|
||||||
Ownership can be released in many ways.
|
Ownership can be released in many ways.
|
||||||
For example, the application can call fname:close() on the file descriptor,
|
For example, the application can call code:close() on the file descriptor,
|
||||||
or transfer ownership back to Vulkan by using the file descriptor to import
|
or transfer ownership back to Vulkan by using the file descriptor to import
|
||||||
a semaphore payload.
|
a semaphore payload.
|
||||||
====
|
====
|
||||||
Where supported by the operating system, the implementation must: set the
|
Where supported by the operating system, the implementation must: set the
|
||||||
file descriptor to be closed automatically when an fname:execve system call
|
file descriptor to be closed automatically when an code:execve system call
|
||||||
is made.
|
is made.
|
||||||
|
|
||||||
Exporting a file descriptor from a semaphore may: have side effects
|
Exporting a file descriptor from a semaphore may: have side effects
|
||||||
|
@ -3479,7 +3479,7 @@ include::../validity/protos/vkCmdPipelineBarrier.txt[]
|
||||||
[open,refpage='VkDependencyFlagBits',desc='Bitmask specifying how execution and memory dependencies are formed',type='enums']
|
[open,refpage='VkDependencyFlagBits',desc='Bitmask specifying how execution and memory dependencies are formed',type='enums']
|
||||||
--
|
--
|
||||||
|
|
||||||
Bits which can: be set in vkCmdPipelineBarrier::pname:dependencyFlags,
|
Bits which can: be set in fname:vkCmdPipelineBarrier::pname:dependencyFlags,
|
||||||
specifying how execution and memory dependencies are formed, are:
|
specifying how execution and memory dependencies are formed, are:
|
||||||
|
|
||||||
include::../api/enums/VkDependencyFlagBits.txt[]
|
include::../api/enums/VkDependencyFlagBits.txt[]
|
||||||
|
|
|
@ -91,14 +91,16 @@ Each component is of type elink:VkViewportCoordinateSwizzleNV, which
|
||||||
determines the type of swizzle for that component.
|
determines the type of swizzle for that component.
|
||||||
The value of pname:x computes the new x component of the position as:
|
The value of pname:x computes the new x component of the position as:
|
||||||
|
|
||||||
if (x == VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV) x' = x; if (x ==
|
....
|
||||||
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV) x' = -x; if (x ==
|
if (x == VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV) x' = x;
|
||||||
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV) x' = y; if (x ==
|
if (x == VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV) x' = -x;
|
||||||
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV) x' = -y; if (x ==
|
if (x == VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV) x' = y;
|
||||||
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV) x' = z; if (x ==
|
if (x == VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV) x' = -y;
|
||||||
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV) x' = -z; if (x ==
|
if (x == VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV) x' = z;
|
||||||
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV) x' = w; if (x ==
|
if (x == VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV) x' = -z;
|
||||||
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV) x' = -w;
|
if (x == VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV) x' = w;
|
||||||
|
if (x == VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV) x' = -w;
|
||||||
|
....
|
||||||
|
|
||||||
Similar selections are performed for the pname:y, pname:z, and pname:w
|
Similar selections are performed for the pname:y, pname:z, and pname:w
|
||||||
coordinates.
|
coordinates.
|
||||||
|
|
Loading…
Reference in New Issue