mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-16 16:26:26 +00:00
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:
parent
ad46c7dc68
commit
7376fb77d1
@ -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.
|
||||
|
2
Makefile
2
Makefile
@ -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
|
||||
|
@ -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:.
|
||||
|
39
chapters/commonvalidity/query_begin_common.txt
Normal file
39
chapters/commonvalidity/query_begin_common.txt
Normal 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[]
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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[]
|
||||
|
@ -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,
|
||||
|
@ -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]]
|
||||
|
@ -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
|
||||
|
@ -1,2 +1,2 @@
|
||||
# The value to start tagging VU statements at, unless overridden by -nextvu
|
||||
startVUID = 2741
|
||||
startVUID = 2749
|
||||
|
@ -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=""VK_IMG_filter_cubic"" 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=""VK_EXT_filter_cubic"" 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"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user