Change log for March 11, 2019 Vulkan 1.1.103 spec update:
* Update release number to 103. Public Issues: * Remove (unnecessary) scoped modification order case from the memory model <<memory-model-location-ordered, location-ordered>> definition (public pull request 924). * Add an <<memory-model-acyclicity, acyclicity>> axiom to the memory model (public pull request 927). Internal Issues: * Fix reversed logic of slink:VkFormatProperties discussion of multi-plane formats and ename:VK_FORMAT_FEATURE_DISJOINT_BIT (internal issue 1493). * Clarify how slink:VkImageStencilUsageCreateInfoEXT works, including new valid usage statements for flink:vkCmdClearDepthStencilImage, and the <<copies, Common Operation>> section of the Copy Commands chapter (internal issue 1565). * Update <<spirvenv-precision-operation, Precision and Operation of SPIR-V Instructions>> section to require that denorms be preserved by several instructions that don't perform any mathematical operations (internal issue 1584). * Remove duplicate valid usage statement from flink:vkAcquireNextImageKHR (internal merge request 3062).
This commit is contained in:
parent
61f3b23c23
commit
4ad4fd1716
|
@ -8,6 +8,35 @@ public pull requests that have been accepted.
|
|||
|
||||
-----------------------------------------------------
|
||||
|
||||
Change log for March 11, 2019 Vulkan 1.1.103 spec update:
|
||||
|
||||
* Update release number to 103.
|
||||
|
||||
Public Issues:
|
||||
|
||||
* Remove (unnecessary) scoped modification order case from the memory
|
||||
model <<memory-model-location-ordered, location-ordered>> definition
|
||||
(public pull request 924).
|
||||
* Add an <<memory-model-acyclicity, acyclicity>> axiom to the memory model
|
||||
(public pull request 927).
|
||||
|
||||
Internal Issues:
|
||||
|
||||
* Fix reversed logic of slink:VkFormatProperties discussion of multi-plane
|
||||
formats and ename:VK_FORMAT_FEATURE_DISJOINT_BIT (internal issue 1493).
|
||||
* Clarify how slink:VkImageStencilUsageCreateInfoEXT works, including new
|
||||
valid usage statements for flink:vkCmdClearDepthStencilImage, and the
|
||||
<<copies, Common Operation>> section of the Copy Commands chapter
|
||||
(internal issue 1565).
|
||||
* Update <<spirvenv-precision-operation, Precision and Operation of SPIR-V
|
||||
Instructions>> section to require that denorms be preserved by several
|
||||
instructions that don't perform any mathematical operations (internal
|
||||
issue 1584).
|
||||
* Remove duplicate valid usage statement from flink:vkAcquireNextImageKHR
|
||||
(internal merge request 3062).
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Change log for March 3, 2019 Vulkan 1.1.102 spec update:
|
||||
|
||||
* Update release number to 102.
|
||||
|
|
2
Makefile
2
Makefile
|
@ -115,7 +115,7 @@ VERBOSE =
|
|||
# ADOCOPTS options for asciidoc->HTML5 output
|
||||
|
||||
NOTEOPTS = -a editing-notes -a implementation-guide
|
||||
PATCHVERSION = 102
|
||||
PATCHVERSION = 103
|
||||
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
|
||||
SPECREVISION = 1.1.$(PATCHVERSION)
|
||||
else
|
||||
|
|
|
@ -789,14 +789,14 @@ will still be visible-to Y.
|
|||
[[memory-model-acyclicity]]
|
||||
== Acyclicity
|
||||
|
||||
_Reads-from_ is a relation between operations, where the first operation is a
|
||||
write, the second operation is a read, and the second operation reads the
|
||||
_Reads-from_ is a relation between operations, where the first operation is
|
||||
a write, the second operation is a read, and the second operation reads the
|
||||
value written by the first operation.
|
||||
_From-reads_ is a relation between operations, where the first operation is a
|
||||
read, the second operation is a write, and the first operation reads a value
|
||||
written earlier than the second operation in the second operation's scoped
|
||||
modification order (or the first operation reads from the initial value, and
|
||||
the second operation is any write to the same locations).
|
||||
_From-reads_ is a relation between operations, where the first operation is
|
||||
a read, the second operation is a write, and the first operation reads a
|
||||
value written earlier than the second operation in the second operation's
|
||||
scoped modification order (or the first operation reads from the initial
|
||||
value, and the second operation is any write to the same locations).
|
||||
|
||||
Then the implementation must: guarantee that no cycles exist in the union of
|
||||
the following relations:
|
||||
|
@ -813,13 +813,14 @@ sequences of operations can't violate causality.
|
|||
=== Scoped Modification Order Coherence
|
||||
|
||||
Let A and B be mutually-ordered atomic operations, where A is
|
||||
location-ordered before B.
|
||||
Then the following rules are a consequence of acyclicity:
|
||||
location-ordered before B. Then the following rules are a consequence of
|
||||
acyclicity:
|
||||
|
||||
* If A and B are both reads and A does not read the initial value, then the
|
||||
write that A takes its value from must: be earlier in its own scoped
|
||||
modification order than (or the same as) the write that B takes its value
|
||||
from (no cycles between location-order, reads-from, and from-reads).
|
||||
* If A and B are both reads and A does not read the initial value, then
|
||||
the write that A takes its value from must: be earlier in its own scoped
|
||||
modification order than (or the same as) the write that B takes its
|
||||
value from (no cycles between location-order, reads-from, and
|
||||
from-reads).
|
||||
* If A is a read and B is a write and A does not read the initial value,
|
||||
then A must: take its value from a write earlier than B in B's scoped
|
||||
modification order (no cycles between location-order, scope modification
|
||||
|
@ -831,8 +832,9 @@ Then the following rules are a consequence of acyclicity:
|
|||
modification order (no cycles between location-order and scoped
|
||||
modification order).
|
||||
* If A is a write and B is a read-modify-write and B reads the value
|
||||
written by A, then B comes immediately after A in A's scoped modification
|
||||
order (no cycles between scoped modification order and from-reads).
|
||||
written by A, then B comes immediately after A in A's scoped
|
||||
modification order (no cycles between scoped modification order and
|
||||
from-reads).
|
||||
|
||||
[[memory-model-shader-io]]
|
||||
== Shader I/O
|
||||
|
|
|
@ -934,26 +934,6 @@ endif::VK_NV_cooperative_matrix[]
|
|||
[[spirvenv-precision-operation]]
|
||||
== Precision and Operation of SPIR-V Instructions
|
||||
|
||||
ifndef::VK_KHR_shader_float_controls[]
|
||||
The following rules apply to both single and double-precision floating point
|
||||
instructions:
|
||||
|
||||
* Positive and negative infinities and positive and negative zeros are
|
||||
generated as dictated by <<ieee-754,IEEE 754>>, but subject to the
|
||||
precisions allowed in the following table.
|
||||
* Dividing a non-zero by a zero results in the appropriately signed
|
||||
<<ieee-754,IEEE 754>> infinity.
|
||||
* Any denormalized value input into a shader or potentially generated by
|
||||
any instruction in a shader may: be flushed to 0.
|
||||
* The rounding mode cannot: be set, and results will be <<Correctly
|
||||
Rounded>>, as described below.
|
||||
* [eq]##NaN##s may: not be generated.
|
||||
Instructions that operate on a [eq]#NaN# may: not result in a [eq]#NaN#.
|
||||
* Support for signaling [eq]##NaN##s is optional: and exceptions are never
|
||||
raised.
|
||||
endif::VK_KHR_shader_float_controls[]
|
||||
|
||||
ifdef::VK_KHR_shader_float_controls[]
|
||||
The following rules apply to half, single, and double-precision floating
|
||||
point instructions:
|
||||
|
||||
|
@ -966,6 +946,24 @@ point instructions:
|
|||
are never raised.
|
||||
Signaling [eq]##NaN## may: be converted to quiet [eq]##NaN##s values by
|
||||
any floating point instruction.
|
||||
* The following instructions must: not flush denormalized values:
|
||||
code:OpConstant, code:OpConstantComposite, code:OpSpecConstant,
|
||||
code:OpSpecConstantComposite, code:OpLoad, code:OpStore, code:OpBitcast,
|
||||
code:OpPhi, code:OpSelect, code:OpFunctionCall, code:OpReturnValue,
|
||||
code:OpVectorExtractDynamic, code:OpVectorInsertDynamic,
|
||||
code:OpVectorShuffle, code:OpCompositeConstruct,
|
||||
code:OpCompositeExtract, code:OpCompositeInsert, code:OpCopyMemory,
|
||||
code:OpCopyObject.
|
||||
ifndef::VK_KHR_shader_float_controls[]
|
||||
* Any denormalized value input into a shader or potentially generated by
|
||||
any instruction in a shader (except those listed above) may: be flushed
|
||||
to 0.
|
||||
* The rounding mode cannot: be set, and results will be <<Correctly
|
||||
Rounded>>, as described below.
|
||||
* [eq]##NaN##s may: not be generated.
|
||||
Instructions that operate on a [eq]#NaN# may: not result in a [eq]#NaN#.
|
||||
endif::VK_KHR_shader_float_controls[]
|
||||
ifdef::VK_KHR_shader_float_controls[]
|
||||
* By default, the implementation may: perform optimizations on half,
|
||||
single, or double-precision floating-point instructions respectively
|
||||
that ignore sign of a zero, or assume that arguments and results are not
|
||||
|
@ -986,12 +984,13 @@ point instructions:
|
|||
This execution mode must: also be respected by code:OpLoad except for
|
||||
loads from the code:Input storage class in the fragment shader stage
|
||||
with the floating-point result type.
|
||||
Other SPIR-V instruction may: also respect the
|
||||
Other SPIR-V instructions may: also respect the
|
||||
code:SignedZeroInfNanPreserve execution mode.
|
||||
* Denormalized values are supported.
|
||||
** By default, any half, single, or double-precision denormalized value
|
||||
input into a shader or potentially generated by any instruction or any
|
||||
extended instructions for GLSL in a shader may: be flushed to zero.
|
||||
input into a shader or potentially generated by any instruction (except
|
||||
those listed above) or any extended instructions for GLSL in a shader
|
||||
may: be flushed to zero.
|
||||
** If the entry point is declared with the code:DenormFlushToZero
|
||||
execution mode then for the affected instuctions the denormalized
|
||||
result must: be flushed to zero and the denormalized operands may: be
|
||||
|
@ -1000,15 +999,14 @@ point instructions:
|
|||
values with smaller bit width and interpreting those values as
|
||||
floating-point numbers must: be flushed to zero.
|
||||
** The following core SPIR-V instructions must: respect the
|
||||
code:DenormFlushToZero execution mode: code:OpSpecConstantOp (except
|
||||
when the opcode is code:OpQuantizeToF16), code:OpFConvert,
|
||||
code:OpFNegate, code:OpFAdd, code:OpFSub, code:OpFMul, code:OpFDiv,
|
||||
code:OpFRem, code:OpFMod, code:OpVectorTimesScalar,
|
||||
code:OpMatrixTimesScalar, code:OpVectorTimesMatrix,
|
||||
code:OpMatrixTimesVector, code:OpMatrixTimesMatrix,
|
||||
code:OpOuterProduct, code:OpDot; and the following extended
|
||||
instructions for GLSL: code:Round, code:RoundEven, code:Trunc,
|
||||
code:FAbs, code:Floor, code:Ceil, code:Fract, code:Radians,
|
||||
code:DenormFlushToZero execution mode: code:OpSpecConstantOp (with
|
||||
opcode code:OpFConvert), code:OpFConvert, code:OpFNegate, code:OpFAdd,
|
||||
code:OpFSub, code:OpFMul, code:OpFDiv, code:OpFRem, code:OpFMod,
|
||||
code:OpVectorTimesScalar, code:OpMatrixTimesScalar,
|
||||
code:OpVectorTimesMatrix, code:OpMatrixTimesVector,
|
||||
code:OpMatrixTimesMatrix, code:OpOuterProduct, code:OpDot; and the
|
||||
following extended instructions for GLSL: code:Round, code:RoundEven,
|
||||
code:Trunc, code:FAbs, code:Floor, code:Ceil, code:Fract, code:Radians,
|
||||
code:Degrees, code:Sin, code:Cos, code:Tan, code:Asin, code:Acos,
|
||||
code:Atan, code:Sinh, code:Cosh, code:Tanh, code:Asinh, code:Acosh,
|
||||
code:Atanh, code:Atan2, code:Pow, code:Exp, code:Log, code:Exp2,
|
||||
|
@ -1018,16 +1016,12 @@ point instructions:
|
|||
code:UnpackHalf2x16, code:UnpackDouble2x32, code:Length, code:Distance,
|
||||
code:Cross, code:Normalize, code:FaceForward, code:Reflect,
|
||||
code:Refract, code:NMin, code:NMax, code:NClamp.
|
||||
Other SPIR-V instruction may: also respect the code:DenormFlushToZero
|
||||
execution mode.
|
||||
Other SPIR-V instructions (except those excluded above) may: also flush
|
||||
denormalized values.
|
||||
** The following core SPIR-V instructions must: respect the
|
||||
code:DenormPreserve execution mode: code:OpPhi, code:OpSelect,
|
||||
code:OpReturnValue, code:OpVectorExtractDynamic,
|
||||
code:OpVectorInsertDynamic, code:OpVectorShuffle,
|
||||
code:OpCompositeConstruct, code:OpCompositeExtract,
|
||||
code:OpCompositeInsert, code:OpCopyObject, code:OpTranspose,
|
||||
code:OpStore, code:OpSpecConstantOp, code:OpFConvert, code:OpFNegate,
|
||||
code:OpFAdd, code:OpFSub, code:OpFMul, code:OpVectorTimesScalar,
|
||||
code:DenormPreserve execution mode: code:OpTranspose,
|
||||
code:OpSpecConstantOp, code:OpFConvert, code:OpFNegate, code:OpFAdd,
|
||||
code:OpFSub, code:OpFMul, code:OpVectorTimesScalar,
|
||||
code:OpMatrixTimesScalar, code:OpVectorTimesMatrix,
|
||||
code:OpMatrixTimesVector, code:OpMatrixTimesMatrix,
|
||||
code:OpOuterProduct, code:OpDot, code:OpFOrdEqual, code:OpFUnordEqual,
|
||||
|
@ -1040,11 +1034,7 @@ point instructions:
|
|||
code:FMax, code:FClamp, code:FMix, code:Fma, code:PackHalf2x16,
|
||||
code:PackDouble2x32, code:UnpackHalf2x16, code:UnpackDouble2x32,
|
||||
code:NMin, code:NMax, code:NClamp.
|
||||
This execution mode must: also be respected by code:OpLoad except for
|
||||
loads from the code:Input storage class in the fragment shader stage
|
||||
with the floating-point result type.
|
||||
Other SPIR-V instruction may: also respect the code:DenormPreserve
|
||||
execution mode.
|
||||
Other SPIR-V instructions may: also preserve denorm values.
|
||||
endif::VK_KHR_shader_float_controls[]
|
||||
|
||||
The precision of double-precision instructions is at least that of single
|
||||
|
|
|
@ -942,9 +942,6 @@ succeeds, which the other physical device(s) can: wait upon.
|
|||
pname:deviceMask must: be a valid device mask
|
||||
* [[VUID-VkAcquireNextImageInfoKHR-deviceMask-01291]]
|
||||
pname:deviceMask must: not be zero
|
||||
* [[VUID-VkAcquireNextImageInfoKHR-semaphore-01804]]
|
||||
pname:semaphore and pname:fence must: not both be equal to
|
||||
dlink:VK_NULL_HANDLE.
|
||||
****
|
||||
|
||||
include::../../validity/structs/VkAcquireNextImageInfoKHR.txt[]
|
||||
|
|
|
@ -148,9 +148,31 @@ ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
|
|||
The <<resources-image-format-features,format features>> of pname:image
|
||||
must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT.
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
|
||||
ifndef::VK_EXT_separate_stencil_usage[]
|
||||
* [[VUID-vkCmdClearDepthStencilImage-image-00009]]
|
||||
pname:image must: have been created with
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
ifdef::VK_EXT_separate_stencil_usage[]
|
||||
* [[VUID-vkCmdClearDepthStencilImage-pRanges-02658]]
|
||||
If any element of pname:pRanges.aspect includes
|
||||
ename:VK_IMAGE_ASPECT_STENCIL_BIT, and pname:image was created with
|
||||
<<VkImageStencilUsageCreateInfoEXT,separate stencil usage>>,
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT must: have been included in the
|
||||
slink:VkImageStencilUsageCreateInfoEXT::pname:stencilUsage used to
|
||||
create pname:image
|
||||
* [[VUID-vkCmdClearDepthStencilImage-pRanges-02659]]
|
||||
If any element of pname:pRanges.aspect includes
|
||||
ename:VK_IMAGE_ASPECT_STENCIL_BIT, and pname:image was not created with
|
||||
<<VkImageStencilUsageCreateInfoEXT,separate stencil usage>>,
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT must: have been included in the
|
||||
slink:VkImageCreateInfo::pname:usage used to create pname:image
|
||||
* [[VUID-vkCmdClearDepthStencilImage-pRanges-02660]]
|
||||
If any element of pname:pRanges.aspect includes
|
||||
ename:VK_IMAGE_ASPECT_DEPTH_BIT, ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT
|
||||
must: have been included in the slink:VkImageCreateInfo::pname:usage
|
||||
used to create pname:image
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
* [[VUID-vkCmdClearDepthStencilImage-image-00010]]
|
||||
If pname:image is non-sparse then it must: be bound completely and
|
||||
contiguously to a single sname:VkDeviceMemory object
|
||||
|
|
|
@ -50,14 +50,48 @@ ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
|
|||
* Destination images must: have ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT
|
||||
in their <<resources-image-format-features,format features>>.
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
|
||||
* Source images must: have been created with the
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage bit enabled and destination
|
||||
images must: have been created with the
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage bit enabled.
|
||||
* Source buffers must: have been created with the
|
||||
ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage bit enabled and destination
|
||||
buffers must: have been created with the
|
||||
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage bit enabled.
|
||||
ifdef::VK_EXT_separate_stencil_usage[]
|
||||
* Source images must: have been created with
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT set in
|
||||
slink:VkImageCreateInfo::pname:usage
|
||||
* Destination images must: have been created with
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT set in
|
||||
slink:VkImageCreateInfo::pname:usage
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
ifdef::VK_EXT_separate_stencil_usage[]
|
||||
* If the stencil aspect of source image is accessed, and the source image
|
||||
was not created with <<VkImageStencilUsageCreateInfoEXT,separate stencil
|
||||
usage>>, the source image must: have been created with
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT set in
|
||||
slink:VkImageCreateInfo::pname:usage
|
||||
* If the stencil aspect of destination image is accessed, and the
|
||||
destination image was not created with
|
||||
<<VkImageStencilUsageCreateInfoEXT,separate stencil usage>>, the
|
||||
destination image must: have been created with
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT set in
|
||||
slink:VkImageCreateInfo::pname:usage
|
||||
* If the stencil aspect of source image is accessed, and the source image
|
||||
was created with <<VkImageStencilUsageCreateInfoEXT,separate stencil
|
||||
usage>>, the source image must: have been created with
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT set in
|
||||
slink:VkImageStencilUsageCreateInfoEXT::pname:stencilUsage
|
||||
* If the stencil aspect of destination image is accessed, and the
|
||||
destination image was created with
|
||||
<<VkImageStencilUsageCreateInfoEXT,separate stencil usage>>, the
|
||||
destination image must: have been created with
|
||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT set in
|
||||
slink:VkImageStencilUsageCreateInfoEXT::pname:stencilUsage
|
||||
* If non-stencil aspects of a source image are accessed, the source image
|
||||
must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT set
|
||||
in slink:VkImageCreateInfo::pname:usage
|
||||
* If non-stencil aspects of a source image are accessed, the source image
|
||||
must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT set
|
||||
in slink:VkImageCreateInfo::pname:usage
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
|
||||
All copy commands are treated as "`transfer`" operations for the purposes of
|
||||
synchronization barriers.
|
||||
|
|
|
@ -2096,8 +2096,8 @@ If pname:format is a block-compressed format, then pname:bufferFeatures
|
|||
must: not support any features for the format.
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
|
||||
If pname:format is a multi-plane format then pname:linearTilingFeatures and
|
||||
pname:optimalTilingFeatures must: not contain
|
||||
If pname:format is not a multi-plane format then pname:linearTilingFeatures
|
||||
and pname:optimalTilingFeatures must: not contain
|
||||
ename:VK_FORMAT_FEATURE_DISJOINT_BIT.
|
||||
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
|
||||
|
||||
|
|
|
@ -1452,20 +1452,15 @@ include::../api/structs/VkImageStencilUsageCreateInfoEXT.txt[]
|
|||
* pname:stencilUsage is a bitmask of elink:VkImageUsageFlagBits describing
|
||||
the intended usage of the stencil aspect of the image.
|
||||
|
||||
When this structure is not present in the pname:pNext chain of
|
||||
sname:VkImageCreateInfo then the implicit value of pname:stencilUsage
|
||||
matches that of sname:VkImageCreateInfo::pname:usage.
|
||||
|
||||
When this structure is present sname:VkImageCreateInfo::pname:usage
|
||||
specifies the intended usage of the depth aspect of the image and
|
||||
sname:VkImageStencilUsageCreateInfoEXT::pname:stencilUsage specifies the
|
||||
intended usage of the stencil aspect of the image.
|
||||
However, for the purposes of determining image specific valid usage
|
||||
conditions, the image itself is considered to be created with a particular
|
||||
elink:VkImageUsageFlagBits value if either
|
||||
sname:VkImageCreateInfo::pname:usage or
|
||||
sname:VkImageStencilUsageCreateInfoEXT::pname:stencilUsage includes that bit
|
||||
value.
|
||||
This structure specifies image usages which only apply to the stencil aspect
|
||||
of a depth/stencil format image.
|
||||
When this structure is included in the pname:pNext chain of
|
||||
slink:VkImageCreateInfo, the stencil aspect of the image must: only be used
|
||||
as specified by pname:stencilUsage.
|
||||
When this structure is not included in the pname:pNext chain of
|
||||
slink:VkImageCreateInfo, the stencil aspect of an image must: only be used
|
||||
as specified slink:VkImageCreateInfo::pname:usage.
|
||||
Use of other aspects of an image are unaffected by this structure.
|
||||
|
||||
This structure can: also be included in the pname:pNext chain of
|
||||
slink:VkPhysicalDeviceImageFormatInfo2 to query additional capabilities
|
||||
|
@ -2816,28 +2811,6 @@ include::../api/protos/vkCreateImageView.txt[]
|
|||
* pname:pView points to a slink:VkImageView handle in which the resulting
|
||||
image view object is returned.
|
||||
|
||||
Some of the image creation parameters are inherited by the view.
|
||||
In particular, image view creation inherits the implicit parameter
|
||||
pname:usage specifying the allowed usages of the image view that, by
|
||||
default, takes the value of the corresponding pname:usage parameter
|
||||
specified in sname:VkImageCreateInfo at image creation time
|
||||
ifdef::VK_EXT_separate_stencil_usage[]
|
||||
, except if the image has a depth-stencil format,
|
||||
pname:subresourceRange.aspectMask specified in the pname:pCreateInfo
|
||||
parameter includes ename:VK_IMAGE_ASPECT_STENCIL_BIT, and the pname:pNext
|
||||
chain of sname:VkImageCreateInfo specified at image creation time contained
|
||||
an instance of slink:VkImageStencilUsageCreateInfoEXT in which case it takes
|
||||
the value of the pname:stencilUsage member of that structure
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
.
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
||||
This implicit parameter can: be overriden by chaining a
|
||||
slink:VkImageViewUsageCreateInfo structure through the pname:pNext member to
|
||||
sname:VkImageViewCreateInfo as described later in this section.
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
||||
|
||||
The remaining parameters are contained in the pname:pCreateInfo.
|
||||
|
||||
include::../validity/protos/vkCreateImageView.txt[]
|
||||
--
|
||||
|
||||
|
@ -2863,6 +2836,32 @@ include::../api/structs/VkImageViewCreateInfo.txt[]
|
|||
* pname:subresourceRange is a slink:VkImageSubresourceRange selecting the
|
||||
set of mipmap levels and array layers to be accessible to the view.
|
||||
|
||||
Some of the pname:image creation parameters are inherited by the view.
|
||||
In particular, image view creation inherits the implicit parameter
|
||||
pname:usage specifying the allowed usages of the image view that, by
|
||||
default, takes the value of the corresponding pname:usage parameter
|
||||
specified in sname:VkImageCreateInfo at image creation time.
|
||||
ifdef::VK_EXT_separate_stencil_usage[]
|
||||
If the image was has a depth-stencil format and was created with an instance
|
||||
of slink:VkImageStencilUsageCreateInfoEXT in the pname:pNext chain of
|
||||
slink:VkImageCreateInfo, the usage is calculated based on the
|
||||
pname:subresource.aspectMask provided:
|
||||
* If pname:aspectMask includes only ename:VK_IMAGE_ASPECT_STENCIL_BIT, the
|
||||
implicit pname:usage is equal to
|
||||
slink:VkImageStencilUsageCreateInfoEXT::pname:stencilUsage.
|
||||
* If pname:aspectMask includes only ename:VK_IMAGE_ASPECT_DEPTH_BIT, the
|
||||
implicit pname:usage is equal to
|
||||
slink:VkImageCreateInfo::pname:stencilUsage.
|
||||
* If both aspects are included in pname:aspectMask, the implicit
|
||||
pname:usage is equal to the intersection of
|
||||
slinkVkImageCreateInfo::pname:usage and
|
||||
slink:VkImageStencilUsageCreateInfoEXT::pname:stencilUsage.
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
||||
The implicit pname:usage can: be overriden by including an instance of
|
||||
slink:VkImageViewUsageCreateInfo structure in the pname:pNext chain.
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
||||
|
||||
If pname:image was created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
|
||||
flag,
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
|
||||
|
@ -3413,6 +3412,43 @@ ifdef::VK_EXT_fragment_density_map[]
|
|||
ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or
|
||||
ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
|
||||
endif::VK_EXT_fragment_density_map[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_maintenance2
|
||||
ifndef::VK_EXT_separate_stencil_usage[]
|
||||
* [[VUID-VkImageViewCreateInfo-pNext-02661]]
|
||||
If the pname:pNext chain includes an instance of
|
||||
slink:VkImageViewUsageCreateInfo, its pname:usage member must: not
|
||||
include any bits that were not set in the pname:usage member of the
|
||||
slink:VkImageCreateInfo structure used to create pname:image.
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
ifdef::VK_EXT_separate_stencil_usage[]
|
||||
* [[VUID-VkImageViewCreateInfo-pNext-02662]]
|
||||
If the pname:pNext chain includes an instance of
|
||||
slink:VkImageViewUsageCreateInfo, and pname:image was not created with
|
||||
an instance of slink:VkImageStencilUsageCreateInfoEXT in the pname:pNext
|
||||
chain of slink:VkImageCreateInfo, its pname:usage member must: not
|
||||
include any bits that were not set in the pname:usage member of the
|
||||
slink:VkImageCreateInfo structure used to create pname:image
|
||||
* [[VUID-VkImageViewCreateInfo-pNext-02663]]
|
||||
If the pname:pNext chain includes an instance of
|
||||
slink:VkImageViewUsageCreateInfo, pname:image was created with an
|
||||
instance of slink:VkImageStencilUsageCreateInfoEXT in the pname:pNext
|
||||
chain of slink:VkImageCreateInfo, and pname:subResourceRange.aspectMask
|
||||
includes ename:VK_IMAGE_ASPECT_STENCIL_BIT, the pname:usage member of
|
||||
the slink:VkImageViewUsageCreateInfo instance must: not include any bits
|
||||
that were not set in the pname:usage member of the
|
||||
slink:VkImageStencilUsageCreateInfoEXT structure used to create
|
||||
pname:image
|
||||
* [[VUID-VkImageViewCreateInfo-pNext-02664]]
|
||||
If the pname:pNext chain includes an instance of
|
||||
slink:VkImageViewUsageCreateInfo, pname:image was created with an
|
||||
instance of slink:VkImageStencilUsageCreateInfoEXT in the pname:pNext
|
||||
chain of slink:VkImageCreateInfo, and pname:subResourceRange.aspectMask
|
||||
includes bits other than ename:VK_IMAGE_ASPECT_STENCIL_BIT, the
|
||||
pname:usage member of the slink:VkImageViewUsageCreateInfo instance
|
||||
must: not include any bits that were not set in the pname:usage member
|
||||
of the slink:VkImageCreateInfo structure used to create pname:image
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance2
|
||||
****
|
||||
|
||||
include::../validity/structs/VkImageViewCreateInfo.txt[]
|
||||
|
@ -3473,15 +3509,6 @@ pname:usage field overrides the implicit pname:usage parameter inherited
|
|||
from image creation time and its value is used instead for the purposes of
|
||||
determining the valid usage conditions of slink:VkImageViewCreateInfo.
|
||||
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkImageViewUsageCreateInfo-usage-01587]]
|
||||
pname:usage must: not include any set bits that were not set in the
|
||||
pname:usage member of the slink:VkImageCreateInfo structure used to
|
||||
create the image this image view is created from.
|
||||
****
|
||||
|
||||
include::../validity/structs/VkImageViewUsageCreateInfo.txt[]
|
||||
|
||||
--
|
||||
|
|
|
@ -43,7 +43,7 @@ extern "C" {
|
|||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 102
|
||||
#define VK_HEADER_VERSION 103
|
||||
|
||||
|
||||
#define VK_NULL_HANDLE 0
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# The value to start tagging VU statements at, unless overridden by -nextvu
|
||||
startVUID = 2658
|
||||
startVUID = 2665
|
||||
|
|
14
xml/vk.xml
14
xml/vk.xml
|
@ -147,7 +147,7 @@ server.
|
|||
<type category="define">// Vulkan 1.1 version number
|
||||
#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
|
||||
<type category="define">// Version of this file
|
||||
#define <name>VK_HEADER_VERSION</name> 102</type>
|
||||
#define <name>VK_HEADER_VERSION</name> 103</type>
|
||||
|
||||
<type category="define">
|
||||
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
|
||||
|
@ -10568,5 +10568,17 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum value=""VK_EXT_extension_259"" name="VK_EXT_EXTENSION_259_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_260" number="260" author="EXT" contact="Allen Jensen @allenjensen" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_EXT_EXTENSION_260_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_extension_260"" name="VK_EXT_extension_260"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_NV_extension_261" number="261" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_NV_EXTENSION_261_SPEC_VERSION"/>
|
||||
<enum value=""VK_NV_extension_261"" name="VK_NV_EXTENSION_261_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
</extensions>
|
||||
</registry>
|
||||
|
|
Loading…
Reference in New Issue