Change log for June 23, 2019 Vulkan 1.1.112 spec update:

* Update release number to 112.

Github Issues:

  * Clarify that it is possible to use the <<memory-host, Host Memory>>
    pname:pfnReallocation callback to free memory in any case that
    pname:pfnFree could be used (public issue 973).

Internal Issues:

  * Clarify range and precision of code:OpImageQueryLod in the discussion of
    scale factor and level-of-detail operation in the
    <<textures-normalized-operations, Normalized Texel Coordinate
    Operations>> section (internal issues 926, 1719).
  * Fix framebuffer layer valid usage statements for
    slink:VkRenderPassCreateInfo, slink:VkRenderPassCreateInfo2KHR, and
    slink:VkFramebufferCreateInfo (internal issue 1670).
  * Refactor common valid usage statements for flink:vkCmdBeginQuery and
    flink:vkCmdBeginQueryIndexedEXT (internal issue 1682).
  * Prohibit the ename:ename:VK_SAMPLER_YCBCR_RANGE_ITU_NARROW range from
    being used in slink:VkSamplerYcbcrConversionCreateInfo for formats with
    a bit depth less than 8 (internal issue 1688).
  * Add missing interactions with `<<VK_EXT_host_query_reset_usage>>` in the
    <<queries, Queries>> chapter (internal issue 1692).
  * Clean up error output from the `optimize-pdf` build script on success.
  * Fix an internal link to the <<spirvenv-correctly-rounded, Correctly
    Rounded>> section in the SPIR-V appendix by adding and referring to that
    anchor.
  * Fix extension version numbers in `vk.xml` for `VK_EXT_filter_cubic` and
    `VK_IMG_filter_cubic`.
  * Specify division precision for negative numbers, and remove statement
    that trigonometric functions have undefined precision, in the
    <<spirvenv-precision-operation, Precision and Operation of SPIR-V
    Instructions>> appendix.
This commit is contained in:
Jon Leech 2019-06-23 20:30:19 -07:00
parent ad46c7dc68
commit 7376fb77d1
12 changed files with 188 additions and 124 deletions

View File

@ -8,6 +8,45 @@ public pull requests that have been accepted.
-----------------------------------------------------
Change log for June 23, 2019 Vulkan 1.1.112 spec update:
* Update release number to 112.
Github Issues:
* Clarify that it is possible to use the <<memory-host, Host Memory>>
pname:pfnReallocation callback to free memory in any case that
pname:pfnFree could be used (public issue 973).
Internal Issues:
* Clarify range and precision of code:OpImageQueryLod in the discussion of
scale factor and level-of-detail operation in the
<<textures-normalized-operations, Normalized Texel Coordinate
Operations>> section (internal issues 926, 1719).
* Fix framebuffer layer valid usage statements for
slink:VkRenderPassCreateInfo, slink:VkRenderPassCreateInfo2KHR, and
slink:VkFramebufferCreateInfo (internal issue 1670).
* Refactor common valid usage statements for flink:vkCmdBeginQuery and
flink:vkCmdBeginQueryIndexedEXT (internal issue 1682).
* Prohibit the ename:ename:VK_SAMPLER_YCBCR_RANGE_ITU_NARROW range from
being used in slink:VkSamplerYcbcrConversionCreateInfo for formats with
a bit depth less than 8 (internal issue 1688).
* Add missing interactions with `<<VK_EXT_host_query_reset_usage>>` in the
<<queries, Queries>> chapter (internal issue 1692).
* Clean up error output from the `optimize-pdf` build script on success.
* Fix an internal link to the <<spirvenv-correctly-rounded, Correctly
Rounded>> section in the SPIR-V appendix by adding and referring to that
anchor.
* Fix extension version numbers in `vk.xml` for `VK_EXT_filter_cubic` and
`VK_IMG_filter_cubic`.
* Specify division precision for negative numbers, and remove statement
that trigonometric functions have undefined precision, in the
<<spirvenv-precision-operation, Precision and Operation of SPIR-V
Instructions>> appendix.
-----------------------------------------------------
Change log for June 10, 2019 Vulkan 1.1.111 spec update:
* Update release number to 111.

View File

@ -121,7 +121,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 111
PATCHVERSION = 112
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
else

View File

@ -990,8 +990,8 @@ 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.
* The rounding mode cannot: be set, and results will be
<<spirvenv-correctly-rounded, 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[]
@ -1075,6 +1075,7 @@ precision.
The precision of operations is defined either in terms of rounding, as an
error bound in ULP, or as inherited from a formula as follows.
[[spirvenv-correctly-rounded]]
.Correctly Rounded
Operations described as "`correctly rounded`" will return the infinitely
precise result, [eq]#x#, rounded so as to be representable in
@ -1168,13 +1169,11 @@ are required: to be at least as follows:
| code:OpFOrdGreaterThanEqual, code:OpFUnordGreaterThanEqual
2+| Correct result.
| code:OpFDiv(x,y)
| 2.5 ULP for y in the range [2^-126^, 2^126^]. | 2.5 ULP for y in the range [2^-14^, 2^14^].
| 2.5 ULP for [eq]#{vert}y{vert}# in the range [2^-126^, 2^126^]. | 2.5 ULP for [eq]#{vert}y{vert}# in the range [2^-14^, 2^14^].
| code:OpFRem(x,y)
| Inherited from [eq]#x - y {times} trunc(x/y)#, for y in the range [2^-126^, 2^126^].
| Inherited from [eq]#x - y {times} trunc(x/y)#, for y in the range [2^-14^, 2^14^].
2+| Inherited from [eq]#x - y {times} trunc(x/y)#.
| code:OpFMod(x,y)
| Inherited from [eq]#x - y {times} floor(x/y)#, for y in the range [2^-126^, 2^126^].
| Inherited from [eq]#x - y {times} floor(x/y)#, for y in the range [2^-14^, 2^14^].
2+| Inherited from [eq]#x - y {times} floor(x/y)#.
| conversions between types
2+| Correctly rounded.
|====
@ -1310,7 +1309,7 @@ at least as follows, unless decorated with RelaxedPrecision:
| code:OpFOrdGreaterThan, code:OpFUnordGreaterThan | Correct result.
| code:OpFOrdLessThanEqual, code:OpFUnordLessThanEqual | Correct result.
| code:OpFOrdGreaterThanEqual, code:OpFUnordGreaterThanEqual | Correct result.
| code:OpFDiv | 2.5 ULP for b in the range [2^-126^, 2^126^].
| code:OpFDiv(x,y) | 2.5 ULP for [eq]#{vert}y{vert}# in the range [2^-126^, 2^126^].
| conversions between types | Correctly rounded.
|====
@ -1331,7 +1330,6 @@ GLSL.std.450 extended instructions specifically defined in terms of the
above instructions inherit the above errors.
GLSL.std.450 extended instructions not listed above and not defined in terms
of the above have undefined: precision.
These include, for example, the trigonometric functions and determinant.
For the code:OpSRem and code:OpSMod instructions, if either operand is
negative the result is undefined:.

View File

@ -0,0 +1,39 @@
* [[VUID-{refpage}-queryPool-01922]]
pname:queryPool must: have been created with a pname:queryType that
differs from that of any queries that are
<<queries-operation-active,active>> within pname:commandBuffer
* [[VUID-{refpage}-None-00807]]
All queries used by the command must: be unavailable
* [[VUID-{refpage}-queryType-00800]]
If the <<features-occlusionQueryPrecise,precise occlusion queries>>
feature is not enabled, or the pname:queryType used to create
pname:queryPool was not ename:VK_QUERY_TYPE_OCCLUSION, pname:flags must:
not contain ename:VK_QUERY_CONTROL_PRECISE_BIT
* [[VUID-{refpage}-query-00802]]
pname:query must: be less than the number of queries in pname:queryPool
* [[VUID-{refpage}-queryType-00803]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_OCCLUSION, the sname:VkCommandPool that
pname:commandBuffer was allocated from must: support graphics operations
* [[VUID-{refpage}-queryType-00804]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the
pname:pipelineStatistics indicate graphics operations, the
sname:VkCommandPool that pname:commandBuffer was allocated from must:
support graphics operations
* [[VUID-{refpage}-queryType-00805]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the
pname:pipelineStatistics indicate compute operations, the
sname:VkCommandPool that pname:commandBuffer was allocated from must:
support compute operations
ifdef::VK_VERSION_1_1[]
* [[VUID-{refpage}-commandBuffer-01885]]
pname:commandBuffer must: not be a protected command buffer
endif::VK_VERSION_1_1[]
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-{refpage}-query-00808]]
If called within a render pass instance, the sum of pname:query and the
number of bits set in the current subpass's view mask must: be less than
or equal to the number of queries in pname:queryPool
endif::VK_VERSION_1_1,VK_KHR_multiview[]

View File

@ -146,7 +146,8 @@ include::{generated}/api/funcpointers/PFN_vkReallocationFunction.txt[]
slink:VkAllocationCallbacks::pname:pUserData in the allocator specified
by the application.
* pname:pOriginal must: be either `NULL` or a pointer previously returned
by pname:pfnReallocation or pname:pfnAllocation of the same allocator.
by pname:pfnReallocation or pname:pfnAllocation of a compatible
allocator.
* pname:size is the size in bytes of the requested allocation.
* pname:alignment is the requested alignment of the allocation in bytes
and must: be a power of two.
@ -425,7 +426,8 @@ endif::VK_EXT_validation_cache[]
* Allocations scoped to any other object may: only be allocated in that
object's ftext:vkCreate* command.
pname:pfnFree may: be called in the following situations:
pname:pfnFree, or pname:pfnReallocation with zero pname:size, may: be called
in the following situations:
* Allocations scoped to a sname:VkDevice or sname:VkInstance may: be freed
from any API command.

View File

@ -9,7 +9,7 @@ _Queries_ provide a mechanism to return information about the processing of
a sequence of Vulkan commands.
Query operations are asynchronous, and as such, their results are not
returned immediately.
Instead, their results, and their availability status, are stored in a
Instead, their results, and their availability status are stored in a
<<queries-pools, Query Pool>>.
The state of these queries can: be read back on the host, or copied to a
buffer object on the device.
@ -175,8 +175,11 @@ query type of a given query pool.
Each query in a query pool has a status that is either _unavailable_ or
_available_, and also has state to store the numerical results of a query
operation of the type requested when the query pool was created.
Resetting a query via flink:vkCmdResetQueryPool sets the status to
unavailable and makes the numerical results undefined:.
Resetting a query via flink:vkCmdResetQueryPool
ifdef::VK_EXT_host_query_reset[]
or flink:vkResetQueryPoolEXT
endif::VK_EXT_host_query_reset[]
sets the status to unavailable and makes the numerical results undefined:.
Performing a query operation with flink:vkCmdBeginQuery and
flink:vkCmdEndQuery changes the status to available when the query
<<queries-operation-finished,finishes>>, and updates the numerical results.
@ -246,6 +249,7 @@ To reset a range of queries in a query pool on the host, call:
include::{generated}/api/protos/vkResetQueryPoolEXT.txt[]
* pname:device is the logical device that owns the query pool.
* pname:queryPool is the handle of the query pool managing the queries
being reset.
* pname:firstQuery is the initial query index to reset.
@ -264,6 +268,14 @@ pname:firstQuery {plus} pname:queryCount - 1]# to unavailable.
* [[VUID-vkResetQueryPoolEXT-firstQuery-02667]]
The sum of pname:firstQuery and pname:queryCount must: be less than or
equal to the number of queries in pname:queryPool
* [[VUID-vkResetQueryPoolEXT-firstQuery-02741]]
Submitted commands that refer to the range specified by pname:firstQuery
and pname:queryCount in pname:queryPool must: have completed execution
* [[VUID-vkResetQueryPoolEXT-firstQuery-02742]]
The range of queries specified by pname:firstQuery and pname:queryCount
in pname:queryPool must: not be in use by calls to
flink:vkGetQueryPoolResults or fname:vkResetQueryPoolEXT in other
threads
****
include::{generated}/validity/protos/vkResetQueryPoolEXT.txt[]
@ -316,6 +328,7 @@ endif::VK_VERSION_1_1,VK_KHR_multiview[]
[open,refpage='vkCmdBeginQuery',desc='Begin a query',type='protos']
--
:refpage: vkCmdBeginQuery
To begin a query, call:
@ -343,46 +356,7 @@ are executed are considered active for those secondary command buffers.
.Valid Usage
****
* [[VUID-vkCmdBeginQuery-queryPool-01922]]
pname:queryPool must: have been created with a pname:queryType that
differs from that of any queries that are
<<queries-operation-active,active>> within pname:commandBuffer
* [[VUID-vkCmdBeginQuery-None-00807]]
All queries used by the command must: be unavailable
* [[VUID-vkCmdBeginQuery-queryType-00800]]
If the <<features-occlusionQueryPrecise,precise occlusion queries>>
feature is not enabled, or the pname:queryType used to create
pname:queryPool was not ename:VK_QUERY_TYPE_OCCLUSION, pname:flags must:
not contain ename:VK_QUERY_CONTROL_PRECISE_BIT
* [[VUID-vkCmdBeginQuery-query-00802]]
pname:query must: be less than the number of queries in pname:queryPool
* [[VUID-vkCmdBeginQuery-queryType-00803]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_OCCLUSION, the sname:VkCommandPool that
pname:commandBuffer was allocated from must: support graphics operations
* [[VUID-vkCmdBeginQuery-queryType-00804]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the
pname:pipelineStatistics indicate graphics operations, the
sname:VkCommandPool that pname:commandBuffer was allocated from must:
support graphics operations
* [[VUID-vkCmdBeginQuery-queryType-00805]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the
pname:pipelineStatistics indicate compute operations, the
sname:VkCommandPool that pname:commandBuffer was allocated from must:
support compute operations
ifdef::VK_VERSION_1_1[]
* [[VUID-vkCmdBeginQuery-commandBuffer-01885]]
pname:commandBuffer must: not be a protected command buffer
endif::VK_VERSION_1_1[]
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-vkCmdBeginQuery-query-00808]]
If fname:vkCmdBeginQuery is called within a render pass instance, the
sum of pname:query and the number of bits set in the current subpass's
view mask must: be less than or equal to the number of queries in
pname:queryPool
endif::VK_VERSION_1_1,VK_KHR_multiview[]
include::{chapters}/commonvalidity/query_begin_common.txt[]
ifdef::VK_EXT_transform_feedback[]
* [[VUID-vkCmdBeginQuery-queryType-02327]]
If the pname:queryType used to create pname:queryPool was
@ -404,6 +378,7 @@ ifdef::VK_EXT_transform_feedback[]
[open,refpage='vkCmdBeginQueryIndexedEXT',desc='Begin an indexed query',type='protos']
--
:refpage: vkCmdBeginQueryIndexedEXT
To begin an indexed query, call:
@ -427,46 +402,7 @@ specific pname:index parameter.
.Valid Usage
****
* [[VUID-vkCmdBeginQueryIndexedEXT-queryPool-02329]]
pname:queryPool must: have been created with a pname:queryType that
differs from that of any queries that are
<<queries-operation-active,active>> within pname:commandBuffer
* [[VUID-vkCmdBeginQueryIndexedEXT-None-02330]]
All queries used by the command must: be unavailable
* [[VUID-vkCmdBeginQueryIndexedEXT-queryType-02331]]
If the <<features-occlusionQueryPrecise,precise occlusion queries>>
feature is not enabled, or the pname:queryType used to create
pname:queryPool was not ename:VK_QUERY_TYPE_OCCLUSION, pname:flags must:
not contain ename:VK_QUERY_CONTROL_PRECISE_BIT
* [[VUID-vkCmdBeginQueryIndexedEXT-query-02332]]
pname:query must: be less than the number of queries in pname:queryPool
* [[VUID-vkCmdBeginQueryIndexedEXT-queryType-02333]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_OCCLUSION, the sname:VkCommandPool that
pname:commandBuffer was allocated from must: support graphics operations
* [[VUID-vkCmdBeginQueryIndexedEXT-queryType-02334]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the
pname:pipelineStatistics indicate graphics operations, the
sname:VkCommandPool that pname:commandBuffer was allocated from must:
support graphics operations
* [[VUID-vkCmdBeginQueryIndexedEXT-queryType-02335]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the
pname:pipelineStatistics indicate compute operations, the
sname:VkCommandPool that pname:commandBuffer was allocated from must:
support compute operations
ifdef::VK_VERSION_1_1[]
* [[VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-02336]]
pname:commandBuffer must: not be a protected command buffer
endif::VK_VERSION_1_1[]
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-vkCmdBeginQueryIndexedEXT-query-02337]]
If fname:vkCmdBeginQuery is called within a render pass instance, the
sum of pname:query and the number of bits set in the current subpass's
view mask must: be less than or equal to the number of queries in
pname:queryPool
endif::VK_VERSION_1_1,VK_KHR_multiview[]
include::{chapters}/commonvalidity/query_begin_common.txt[]
* [[VUID-vkCmdBeginQueryIndexedEXT-queryType-02338]]
If the pname:queryType used to create pname:queryPool was
ename:VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the
@ -673,13 +609,7 @@ include::{generated}/api/protos/vkGetQueryPoolResults.txt[]
* pname:queryPool is the query pool managing the queries containing the
desired results.
* pname:firstQuery is the initial query index.
* pname:queryCount is the number of queries.
pname:firstQuery and pname:queryCount together define a range of
queries.
For pipeline statistics queries, each query index in the pool contains
one integer value for each bit that is enabled in
slink:VkQueryPoolCreateInfo::pname:pipelineStatistics when the pool is
created.
* pname:queryCount is the number of queries to read.
* pname:dataSize is the size in bytes of the buffer pointed to by
pname:pData.
* pname:pData is a pointer to a user-allocated buffer where the results
@ -689,6 +619,13 @@ include::{generated}/api/protos/vkGetQueryPoolResults.txt[]
* pname:flags is a bitmask of elink:VkQueryResultFlagBits specifying how
and when results are returned.
The range of queries read is defined by [eq]#[pname:firstQuery,
pname:firstQuery {plus} pname:queryCount - 1]#.
For pipeline statistics queries, each query index in the pool contains one
integer value for each bit that is enabled in
slink:VkQueryPoolCreateInfo::pname pipelineStatistics when the pool is
created.
If no bits are set in pname:flags, and all requested queries are in the
available state, results are written as an array of 32-bit unsigned integer
values.
@ -726,8 +663,11 @@ ename:VK_QUERY_RESULT_WAIT_BIT bit has the desired effect.
For example, if a query has been used previously and a command buffer
records the commands fname:vkCmdResetQueryPool, fname:vkCmdBeginQuery, and
fname:vkCmdEndQuery for that query, then the query will remain in the
available state until the fname:vkCmdResetQueryPool command executes on a
queue.
available state until
ifdef::VK_EXT_host_query_reset[]
fname:vkResetQueryPoolEXT is called or
endif::VK_EXT_host_query_reset[]
the fname:vkCmdResetQueryPool command executes on a queue.
Applications can: use fences or events to ensure that a query has already
been reset before checking for its results or availability status.
Otherwise, a stale value could be returned from a previous use of the query.
@ -735,8 +675,12 @@ Otherwise, a stale value could be returned from a previous use of the query.
The above also applies when ename:VK_QUERY_RESULT_WAIT_BIT is used in
combination with ename:VK_QUERY_RESULT_WITH_AVAILABILITY_BIT.
In this case, the returned availability status may: reflect the result of a
previous use of the query unless the fname:vkCmdResetQueryPool command has
been executed since the last use of the query.
previous use of the query unless
ifdef::VK_EXT_host_query_reset[]
fname:vkResetQueryPoolEXT is called or
endif::VK_EXT_host_query_reset[]
the fname:vkCmdResetQueryPool command has been executed since the last use
of the query.
====
[NOTE]
@ -1209,8 +1153,11 @@ synchronization behavior equivalent to how other queries operate.
Timestamp values can: also be retrieved from the query pool using
flink:vkGetQueryPoolResults.
As with other queries, the query must: be reset using
flink:vkCmdResetQueryPool before requesting the timestamp value be written
to it.
flink:vkCmdResetQueryPool
ifdef::VK_EXT_host_query_reset[]
or flink:vkResetQueryPoolEXT
endif::VK_EXT_host_query_reset[]
before requesting the timestamp value be written to it.
While fname:vkCmdWriteTimestamp can: be called inside or outside of a render
pass instance, flink:vkCmdCopyQueryPoolResults must: only be called outside

View File

@ -259,9 +259,8 @@ ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkRenderPassCreateInfo-pNext-02516]]
If the pname:pNext chain includes an instance of
slink:VkRenderPassMultiviewCreateInfo, each element of its
pname:pViewMask member must: not include a bit at a position greater
than the value of
slink:VkPhysicalDeviceLimits::pname:maxFramebufferLayers
pname:pViewMask member must: not have a bit set at an index greater than
or equal to slink:VkPhysicalDeviceLimits::pname:maxFramebufferLayers
endif::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkRenderPassCreateInfo-pDependencies-00837]]
For any element of pname:pDependencies, if the pname:srcSubpass is not
@ -1713,8 +1712,8 @@ respectively.
its pname:dependencyFlags member must: include
ename:VK_DEPENDENCY_VIEW_LOCAL_BIT
* [[VUID-VkRenderPassCreateInfo2KHR-viewMask-02524]]
The pname:viewMask member must: not include a bit at a position greater
than the value of
The pname:viewMask member must: not have a bit set at an index greater
than or equal to
slink:VkPhysicalDeviceLimits::pname:maxFramebufferLayers
* [[VUID-VkRenderPassCreateInfo2KHR-attachment-02525]]
If the pname:attachment member of any element of the
@ -2415,12 +2414,43 @@ ifndef::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-00882]]
Each element of pname:pAttachments must: have dimensions at least as
large as the corresponding framebuffer dimension
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-renderPass-02743]]
If pname:renderPass was specified with non-zero view masks, each element
of pname:pAttachments must: have a pname:layerCount greater than the
index of the most significant bit set in any of those view masks
endif::VK_VERSION_1_1,VK_KHR_multiview[]
endif::VK_EXT_fragment_density_map[]
ifdef::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-02554]]
Each element of pname:pAttachments must: have dimensions at least as
large as the corresponding framebuffer dimension except for any element
that is referenced by pname:fragmentDensityMapAttachment
ifndef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-02744]]
An element of pname:pAttachments that is referenced by
pname:fragmentDensityMapAttachment must: have a pname:layerCount equal
to `1`
endif::VK_VERSION_1_1,VK_KHR_multiview[]
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-renderPass-02745]]
If pname:renderPass was specified with non-zero view masks, each element
of pname:pAttachments that is not referenced by
pname:fragmentDensityMapAttachment must: have a pname:layerCount greater
than the index of the most significant bit set in any of those view
masks
* [[VUID-VkFramebufferCreateInfo-renderPass-02746]]
If pname:renderPass was specified with non-zero view masks, each element
of pname:pAttachments that is referenced by
pname:fragmentDensityMapAttachment must: have a pname:layerCount equal
to `1` or greater than the index of the most significant bit set in any
of those view masks
* [[VUID-VkFramebufferCreateInfo-renderPass-02747]]
If pname:renderPass was not specified with non-zero view masks, each
element of pname:pAttachments that is referenced by
pname:fragmentDensityMapAttachment must: have a pname:layerCount equal
to `1`
endif::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-02555]]
An element of pname:pAttachments that is referenced by
pname:fragmentDensityMapAttachment must: have a width at least as large
@ -2452,17 +2482,16 @@ endif::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-layers-00890]]
pname:layers must: be less than or equal to
sname:VkPhysicalDeviceLimits::pname:maxFramebufferLayers
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-renderPass-02531]]
If pname:renderPass was specified with non-zero view masks, pname:layers
must: be `1`
endif::VK_VERSION_1_1,VK_KHR_multiview[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-00891]]
Each element of pname:pAttachments that is a 2D or 2D array image view
taken from a 3D image must: not be a depth/stencil format
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-renderPass-02531]]
If pname:renderPass was specified with non-zero view masks, pname:layers
must: be greater than or equal to the greatest position of any bit
included in any of those view masks
endif::VK_VERSION_1_1,VK_KHR_multiview[]
****
include::{generated}/validity/structs/VkFramebufferCreateInfo.txt[]

View File

@ -688,6 +688,10 @@ endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ename:VK_COMPONENT_SWIZZLE_ZERO or ename:VK_COMPONENT_SWIZZLE_ONE, and
must: not correspond to a channel which contains zero or one as a
consequence of <<textures-conversion-to-rgba,conversion to RGBA>>
* [[VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748]]
If pname:ycbcrRange is ename:VK_SAMPLER_YCBCR_RANGE_ITU_NARROW then the
R, G and B channels obtained by applying the pname:component swizzle to
pname:format must: each have a bit-depth greater than or equal to 8.
* [[VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656]]
If the format does not support
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,

View File

@ -1726,6 +1726,9 @@ derivatives).
The implicit LOD selected can: be queried using the SPIR-V instruction
code:OpImageQueryLod, which gives access to the [eq]#{lambda}#' and
[eq]#d~l~# values, defined below.
These values must: be computed with pname:mipmapPrecisionBits of accuracy
and may: be subject to implementation-specific maxima and minima for very
large, out-of-range values.
[[textures-scale-factor]]

View File

@ -68,7 +68,7 @@ fi
# -dProcessColorModel=/DeviceGray \
# -dColorConversionStrategy=/Gray \
ERRFILE=ERRS.optimize
ERRFILE=$FILE_BASENAME-ERRS.optimize
"$GS" -q -dNOPAUSE -dBATCH -dSAFER -dNOOUTERSAVE \
-sDEVICE=pdfwrite \
-dPDFSETTINGS=/prepress \
@ -92,6 +92,8 @@ elif grep -q Error $ERRFILE ; then
grep Error $ERRFILE
echo '-------------------------------------'
status=1
else
rm -f $ERRFILE
fi
exit $status

View File

@ -1,2 +1,2 @@
# The value to start tagging VU statements at, unless overridden by -nextvu
startVUID = 2741
startVUID = 2749

View File

@ -154,7 +154,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> 111</type>
#define <name>VK_HEADER_VERSION</name> 112</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -5097,6 +5097,7 @@ typedef void <name>CAMetalLayer</name>;
<enum value="9" name="VK_DRIVER_ID_ARM_PROPRIETARY_KHR" comment="Arm Limited"/>
<enum value="10" name="VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR" comment="Google LLC"/>
<enum value="11" name="VK_DRIVER_ID_GGP_PROPRIETARY_KHR" comment="Google LLC"/>
<enum value="12" name="VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR" comment="Broadcom Inc."/>
</enums>
<enums name="VkConditionalRenderingFlagBitsEXT" type="bitmask">
<enum bitpos="0" name="VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"/>
@ -8284,7 +8285,7 @@ typedef void <name>CAMetalLayer</name>;
</extension>
<extension name="VK_IMG_filter_cubic" number="16" type="device" author="IMG" contact="Tobias Hector @tobski" supported="vulkan">
<require>
<enum value="2" name="VK_IMG_FILTER_CUBIC_SPEC_VERSION"/>
<enum value="1" name="VK_IMG_FILTER_CUBIC_SPEC_VERSION"/>
<enum value="&quot;VK_IMG_filter_cubic&quot;" name="VK_IMG_FILTER_CUBIC_EXTENSION_NAME"/>
<enum offset="0" extends="VkFilter" name="VK_FILTER_CUBIC_IMG"/>
<enum bitpos="13" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG" comment="Format can be filtered with VK_FILTER_CUBIC_IMG when being sampled"/>
@ -10199,7 +10200,7 @@ typedef void <name>CAMetalLayer</name>;
</extension>
<extension name="VK_EXT_filter_cubic" number="171" type="device" requires="VK_IMG_filter_cubic" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="vulkan">
<require>
<enum value="1" name="VK_EXT_FILTER_CUBIC_SPEC_VERSION"/>
<enum value="2" name="VK_EXT_FILTER_CUBIC_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_filter_cubic&quot;" name="VK_EXT_FILTER_CUBIC_EXTENSION_NAME"/>
<enum extends="VkFilter" name="VK_FILTER_CUBIC_EXT" alias="VK_FILTER_CUBIC_IMG"/>
<enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" alias="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"/>