Change log for May 24, 2019 Vulkan 1.1.109 spec update:
* Update release number to 109. Github Issues: * Require matching for physical devices to be in a device group in the <<devsandqueues-devices, Devices>> section (public issue 695). * Fix typo in an equation in the <<fragmentdensitymap-fetch-density-value, Fetch Density Value>> section (public issue 954). * Fix styleguide links (public pull request 965). Internal Issues: * Allow <<renderpass-compatibility, compatibility of single-subpass renderpasses>> with different resolve attachments (internal issue 1464). * Add some missing empty flags types to API spec so custom refpage generation doesn't break (internal issue 1607). * Add a "`SPIR-V Sampled Type`" column to the <<formats-numericformat, Interpretation of Numeric Formats>> table, and clarify the requirement that the code:OpTypeImage sampled type match the bound image's numeric format for slink:VkClearColorValue and in the <<interfaces-resources-descset, Descriptor Set Interface>> section (internal issue 1646). * Fix a typo in the <<tessellation-quad-tessellation, Quad Tessellation>> section which should refer to rectangles, not triangles (internal issue 1667). * Clarify the definition of time domains in elink:VkTimeDomainEXT (internal merge request 3110). * Add R10X6 and R12X4 formats to the <<formats-mandatory-features-10bit>> table (internal merge request 3137). * Don't require extern sync on wait/signal semaphores in `vk.xml` for flink:vkQueueSubmit and flink:vkQueueBindSparse (internal merge request 3116). * Improve phrasing of compute and mesh shader size related to code:LocalSize and code:WorkgroupSize in slink:VkPhysicalDeviceMeshShaderPropertiesNV and slink:VkPhysicalDeviceMaintenance3Properties (internal merge request 3156). * Make the flink:vkCmdBindShadingRateImageNV pname:imageView parameter optional in `vk.xml` (internal merge request 3157). New Extensions: * `<<VK_INTEL_performance_query>>` * `<<VK_INTEL_shader_integer_functions2>>`
This commit is contained in:
parent
94b59c35a1
commit
6635a81b5b
|
@ -8,6 +8,55 @@ public pull requests that have been accepted.
|
|||
|
||||
-----------------------------------------------------
|
||||
|
||||
Change log for May 24, 2019 Vulkan 1.1.109 spec update:
|
||||
|
||||
* Update release number to 109.
|
||||
|
||||
Github Issues:
|
||||
|
||||
* Require matching for physical devices to be in a device group in the
|
||||
<<devsandqueues-devices, Devices>> section (public issue 695).
|
||||
* Fix typo in an equation in the <<fragmentdensitymap-fetch-density-value,
|
||||
Fetch Density Value>> section (public issue 954).
|
||||
* Fix styleguide links (public pull request 965).
|
||||
|
||||
Internal Issues:
|
||||
|
||||
* Allow <<renderpass-compatibility, compatibility of single-subpass
|
||||
renderpasses>> with different resolve attachments (internal issue 1464).
|
||||
* Add some missing empty flags types to API spec so custom refpage
|
||||
generation doesn't break (internal issue 1607).
|
||||
* Add a "`SPIR-V Sampled Type`" column to the <<formats-numericformat,
|
||||
Interpretation of Numeric Formats>> table, and clarify the requirement
|
||||
that the code:OpTypeImage sampled type match the bound image's numeric
|
||||
format for slink:VkClearColorValue and in the
|
||||
<<interfaces-resources-descset, Descriptor Set Interface>> section
|
||||
(internal issue 1646).
|
||||
* Fix a typo in the <<tessellation-quad-tessellation, Quad Tessellation>>
|
||||
section which should refer to rectangles, not triangles (internal issue
|
||||
1667).
|
||||
* Clarify the definition of time domains in elink:VkTimeDomainEXT
|
||||
(internal merge request 3110).
|
||||
* Add R10X6 and R12X4 formats to the <<formats-mandatory-features-10bit>>
|
||||
table (internal merge request 3137).
|
||||
* Don't require extern sync on wait/signal semaphores in `vk.xml` for
|
||||
flink:vkQueueSubmit and flink:vkQueueBindSparse (internal merge request
|
||||
3116).
|
||||
* Improve phrasing of compute and mesh shader size related to
|
||||
code:LocalSize and code:WorkgroupSize in
|
||||
slink:VkPhysicalDeviceMeshShaderPropertiesNV and
|
||||
slink:VkPhysicalDeviceMaintenance3Properties (internal merge request
|
||||
3156).
|
||||
* Make the flink:vkCmdBindShadingRateImageNV pname:imageView parameter
|
||||
optional in `vk.xml` (internal merge request 3157).
|
||||
|
||||
New Extensions:
|
||||
|
||||
* `<<VK_INTEL_performance_query>>`
|
||||
* `<<VK_INTEL_shader_integer_functions2>>`
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Change log for May 13, 2019 Vulkan 1.1.108 spec update:
|
||||
|
||||
* Update release number to 108.
|
||||
|
|
4
Makefile
4
Makefile
|
@ -121,7 +121,7 @@ VERBOSE =
|
|||
# ADOCOPTS options for asciidoc->HTML5 output
|
||||
|
||||
NOTEOPTS = -a editing-notes -a implementation-guide
|
||||
PATCHVERSION = 108
|
||||
PATCHVERSION = 109
|
||||
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
|
||||
SPECREVISION = 1.1.$(PATCHVERSION)
|
||||
else
|
||||
|
@ -367,7 +367,7 @@ MANCOPYRIGHT = $(MANDIR)/copyright-ccby.txt $(MANDIR)/footer.txt
|
|||
GENREF = $(SCRIPTS)/genRef.py
|
||||
LOGFILE = man/logfile
|
||||
man/apispec.txt: $(SPECFILES) $(GENREF) $(SCRIPTS)/reflib.py $(SCRIPTS)/vkapi.py
|
||||
$(PYTHON) $(GENREF) -log $(LOGFILE) $(SPECFILES)
|
||||
$(PYTHON) $(GENREF) -log $(LOGFILE) $(EXTOPTIONS) $(SPECFILES)
|
||||
|
||||
# These targets are HTML5 ref pages
|
||||
#
|
||||
|
|
|
@ -0,0 +1,213 @@
|
|||
include::meta/VK_INTEL_performance_query.txt[]
|
||||
|
||||
*Last Modified Date*::
|
||||
2018-05-16
|
||||
*IP Status*::
|
||||
No known IP claims.
|
||||
*Contributors*::
|
||||
- Lionel Landwerlin, Intel
|
||||
- Piotr Maciejewski, Intel
|
||||
|
||||
This extension allows an application to capture performance data to be
|
||||
interpreted by a external application or library.
|
||||
|
||||
Such a library is available at : https://github.com/intel/metrics-discovery
|
||||
|
||||
Performance analysis tools such as GPA
|
||||
(https://software.intel.com/en-us/gpa) make use of this extension and the
|
||||
metrics-discovery library to present the data in a human readable way.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
* slink:VkPerformanceConfigurationINTEL
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending elink:VkStructureType:
|
||||
** ename:VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL
|
||||
** ename:VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
|
||||
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
|
||||
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
|
||||
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
|
||||
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
|
||||
** ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
|
||||
|
||||
* Extending elink:VkQueryType:
|
||||
** ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
|
||||
|
||||
=== New Enums
|
||||
|
||||
* elink:VkPerformanceConfigurationTypeINTEL
|
||||
* elink:VkQueryPoolSamplingModeINTEL
|
||||
* elink:VkPerformanceOverrideTypeINTEL
|
||||
* elink:VkPerformanceParameterTypeINTEL
|
||||
* elink:VkPerformanceValueTypeINTEL
|
||||
|
||||
=== New Structures
|
||||
|
||||
* slink:VkPerformanceValueINTEL
|
||||
* slink:VkInitializePerformanceApiInfoINTEL
|
||||
* slink:VkQueryPoolCreateInfoINTEL
|
||||
* slink:VkPerformanceMarkerInfoINTEL
|
||||
* slink:VkPerformanceStreamMarkerInfoINTEL
|
||||
* slink:VkPerformanceOverrideInfoINTEL
|
||||
* slink:VkPerformanceConfigurationAcquireInfoINTEL
|
||||
|
||||
=== New Functions
|
||||
|
||||
* flink:vkInitializePerformanceApiINTEL
|
||||
* flink:vkUninitializePerformanceApiINTEL
|
||||
* flink:vkCmdSetPerformanceMarkerINTEL
|
||||
* flink:vkCmdSetPerformanceOverrideINTEL
|
||||
* flink:vkCmdSetPerformanceStreamMarkerINTEL
|
||||
* flink:vkAcquirePerformanceConfigurationINTEL
|
||||
* flink:vkReleasePerformanceConfigurationINTEL
|
||||
* flink:vkQueueSetPerformanceConfigurationINTEL
|
||||
* flink:vkGetPerformanceParameterINTEL
|
||||
|
||||
=== Issues
|
||||
|
||||
None.
|
||||
|
||||
=== Example Code
|
||||
|
||||
[source,c]
|
||||
---------------------------------------------------
|
||||
|
||||
// A previously created device
|
||||
VkDevice device;
|
||||
|
||||
// A queue from from device
|
||||
VkQueue queue;
|
||||
|
||||
VkInitializePerformanceApiInfoINTEL performanceApiInfoIntel = {
|
||||
VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
vkInitializePerformanceApiINTEL(
|
||||
device,
|
||||
&performanceApiInfoIntel);
|
||||
|
||||
VkQueryPoolCreateInfoINTEL queryPoolIntel = {
|
||||
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
|
||||
NULL,
|
||||
VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
|
||||
};
|
||||
|
||||
VkQueryPoolCreateInfo queryPoolCreateInfo = {
|
||||
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
|
||||
&queryPoolIntel,
|
||||
0,
|
||||
VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
|
||||
1,
|
||||
0
|
||||
};
|
||||
|
||||
VkQueryPool queryPool;
|
||||
|
||||
VkResult result = vkCreateQueryPool(
|
||||
device,
|
||||
&queryPoolCreateInfo,
|
||||
NULL,
|
||||
&queryPool);
|
||||
|
||||
assert(VK_SUCCESS == result);
|
||||
|
||||
// A command buffer we want to record counters on
|
||||
VkCommandBuffer commandBuffer;
|
||||
|
||||
VkCommandBufferBeginInfo commandBufferBeginInfo = {
|
||||
VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
||||
NULL,
|
||||
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
|
||||
NULL
|
||||
};
|
||||
|
||||
result = vkBeginCommandBuffer(commandBuffer, &commandBufferBeginInfo);
|
||||
|
||||
assert(VK_SUCCESS == result);
|
||||
|
||||
vkCmdResetQueryPool(
|
||||
commandBuffer,
|
||||
queryPool,
|
||||
0,
|
||||
1);
|
||||
|
||||
vkCmdBeginQuery(
|
||||
commandBuffer,
|
||||
queryPool,
|
||||
0,
|
||||
0);
|
||||
|
||||
// Perform the commands you want to get performance information on
|
||||
// ...
|
||||
|
||||
// Perform a barrier to ensure all previous commands were complete before
|
||||
// ending the query
|
||||
vkCmdPipelineBarrier(commandBuffer,
|
||||
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
|
||||
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
0,
|
||||
NULL);
|
||||
|
||||
vkCmdEndQuery(
|
||||
commandBuffer,
|
||||
queryPool,
|
||||
0);
|
||||
|
||||
result = vkEndCommandBuffer(commandBuffer);
|
||||
|
||||
assert(VK_SUCCESS == result);
|
||||
|
||||
VkPerformanceConfigurationAcquireInfoINTEL performanceConfigurationAcquireInfo = {
|
||||
VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
|
||||
NULL,
|
||||
VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
|
||||
};
|
||||
|
||||
VkPerformanceConfigurationINTEL performanceConfigurationIntel;
|
||||
|
||||
result = vkAcquirePerformanceConfigurationINTEL(
|
||||
device,
|
||||
&performanceConfigurationAcquireInfo,
|
||||
&performanceConfigurationIntel);
|
||||
|
||||
vkQueueSetPerformanceConfigurationINTEL(queue, performanceConfigurationIntel);
|
||||
|
||||
assert(VK_SUCCESS == result);
|
||||
|
||||
// Submit the command buffer and wait for its completion
|
||||
// ...
|
||||
|
||||
result = vkReleasePerformanceConfigurationINTEL(
|
||||
device,
|
||||
performanceConfigurationIntel);
|
||||
|
||||
assert(VK_SUCCESS == result);
|
||||
|
||||
// Get the report size from metrics-discovery's QueryReportSize
|
||||
|
||||
result = vkGetQueryPoolResults(
|
||||
device,
|
||||
queryPool,
|
||||
0, 1, QueryReportSize,
|
||||
data, QueryReportSize, 0);
|
||||
|
||||
assert(VK_SUCCESS == result);
|
||||
|
||||
// The data can then be passed back to metrics-discovery from which
|
||||
// human readable values can be queried.
|
||||
|
||||
---------------------------------------------------
|
||||
|
||||
=== Version History
|
||||
|
||||
* Revision 1, 2018-05-16 (Lionel Landwerlin)
|
||||
- Initial revision
|
|
@ -8,13 +8,15 @@ include::meta/VK_INTEL_shader_integer_functions2.txt[]
|
|||
- Ian Romanick, Intel
|
||||
- Ben Ashbaugh, Intel
|
||||
|
||||
This extension adds support for several new integer instructions in SPIR-V for
|
||||
use in graphics shaders. Many of these instructions have pre-existing
|
||||
counterparts in the Kernel environment.
|
||||
This extension adds support for several new integer instructions in SPIR-V
|
||||
for use in graphics shaders.
|
||||
Many of these instructions have pre-existing counterparts in the Kernel
|
||||
environment.
|
||||
|
||||
The added integer functions are defined by the
|
||||
http://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/INTEL/SPV_INTEL_shader_integer_functions2.html[+SPV_INTEL_shader_integer_functions+]
|
||||
SPIR-V extension and can be used with the GL_INTEL_shader_integer_functions2 GLSL extension.
|
||||
SPIR-V extension and can be used with the GL_INTEL_shader_integer_functions2
|
||||
GLSL extension.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ None
|
|||
|
||||
1) Does X11 need a way to query for compatibility between a particular
|
||||
physical device and a specific screen? This would be a more general query
|
||||
than flink:vkGetPhysicalDeviceSurfaceSupportKHR : if it returned
|
||||
than flink:vkGetPhysicalDeviceSurfaceSupportKHR; if it returned
|
||||
ename:VK_TRUE, then the physical device could be assumed to support
|
||||
presentation to any window on that screen.
|
||||
|
||||
|
|
|
@ -0,0 +1,365 @@
|
|||
ifdef::VK_INTEL_performance_query[]
|
||||
|
||||
[[queries-performance-intel]]
|
||||
== Intel performance queries
|
||||
|
||||
Intel performance queries allow an application to capture performance data
|
||||
for a set of commands.
|
||||
Performance queries are used in a similar way than other types of queries.
|
||||
A main difference with existing queries is that the resulting data should be
|
||||
handed over to a library capabable to produce human readable results rather
|
||||
than being read directly by an application.
|
||||
|
||||
[open,refpage='vkInitializePerformanceApiINTEL',desc='Initialize a device for performance queries',type='protos']
|
||||
--
|
||||
Prior to creating a performance query pool, initialize the device for
|
||||
performance queries with the call:
|
||||
|
||||
include::{generated}/api/protos/vkInitializePerformanceApiINTEL.txt[]
|
||||
|
||||
* pname:device is the logical device used for the queries.
|
||||
* pname:pInitializeInfo is a pointer to the initialization parameters.
|
||||
|
||||
include::{generated}/validity/protos/vkInitializePerformanceApiINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkInitializePerformanceApiInfoINTEL',desc='Structure specifying parameters of initialize of the device',type='structs']
|
||||
--
|
||||
The sname:VkInitializePerformanceApiInfoINTEL structure is defined as :
|
||||
|
||||
include::{generated}/api/structs/VkInitializePerformanceApiInfoINTEL.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:pUserData is a pointer for application data.
|
||||
|
||||
include::{generated}/validity/structs/VkInitializePerformanceApiInfoINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='vkUninitializePerformanceApiINTEL',desc='Uninitialize a device for performance queries',type='protos']
|
||||
--
|
||||
Once performance query operations have completed, uninitalize the device for
|
||||
performance queries with the call:
|
||||
|
||||
include::{generated}/api/protos/vkUninitializePerformanceApiINTEL.txt[]
|
||||
|
||||
* pname:device is the logical device used for the queries.
|
||||
|
||||
include::{generated}/validity/protos/vkUninitializePerformanceApiINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='vkGetPerformanceParameterINTEL',desc='Query performance capabilities of the device',type='protos']
|
||||
--
|
||||
Some performance query features of a device can be discovered with the call:
|
||||
|
||||
include::{generated}/api/protos/vkGetPerformanceParameterINTEL.txt[]
|
||||
|
||||
* pname:device is the logical device to query.
|
||||
* pname:parameter is the parameter to query.
|
||||
* pname:pValue points to an instance of the slink:VkPerformanceValueINTEL
|
||||
structure in which the type and value of the parameter are returned.
|
||||
|
||||
include::{generated}/validity/protos/vkGetPerformanceParameterINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceParameterTypeINTEL',desc='Parameters that can be queried',type='enums']
|
||||
--
|
||||
Possible values of flink:vkGetPerformanceParameterINTEL::pname:parameter,
|
||||
specifying a performance query feature, are:
|
||||
|
||||
include::{generated}/api/enums/VkPerformanceParameterTypeINTEL.txt[]
|
||||
|
||||
* ename:VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL has a
|
||||
boolean result which tells whether hardware counters can be captured.
|
||||
* ename:VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL has a
|
||||
32 bits integer result which tells how many bits can be written into the
|
||||
sname:VkStreamPerformanceMarkerInfoINTEL value.
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceValueINTEL',desc='Container for value and types of parameters that can be queried',type='structs']
|
||||
--
|
||||
The sname:VkPerformanceValueINTEL structure is defined as:
|
||||
|
||||
include::{generated}/api/structs/VkPerformanceValueINTEL.txt[]
|
||||
|
||||
* pname:type is an elink:VkPerformanceValueTypeINTEL value specifying the
|
||||
type of the returned data.
|
||||
* pname:data is an slink:VkPerformanceValueDataINTEL union specifying the
|
||||
value of the returned data.
|
||||
|
||||
include::{generated}/validity/structs/VkPerformanceValueINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceValueTypeINTEL',desc='Type of the parameters that can be queried',type='enums']
|
||||
--
|
||||
Possible values of slink:VkPerformanceValueINTEL::pname:type, specifying the
|
||||
type of the data returned in slink:VkPerformanceValueINTEL::pname:data, are:
|
||||
|
||||
* ename:VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL specifies that unsigned
|
||||
32-bit integer data is returned in pname:data.value32.
|
||||
* ename:VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL specifies that unsigned
|
||||
64-bit integer data is returned in pname:data.value64.
|
||||
* ename:VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL specifies that
|
||||
floating-point data is returned in pname:data.valueFloat.
|
||||
* ename:VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL specifies that
|
||||
basetype:Bool32 data is returned in pname:data.valueBool.
|
||||
* ename:VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL specifies that a pointer to
|
||||
a NULL-terminated string is returned in pname:data.valueString.
|
||||
The pointer is valid for the lifetime of the pname:device parameter
|
||||
passed to flink:vkGetPerformanceParameterINTEL.
|
||||
|
||||
include::{generated}/api/enums/VkPerformanceValueTypeINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceValueDataINTEL',desc='Values returned for the parameters',type='structs']
|
||||
--
|
||||
The sname:VkPerformanceValueDataINTEL union is defined as:
|
||||
|
||||
include::{generated}/api/structs/VkPerformanceValueDataINTEL.txt[]
|
||||
|
||||
* pname:data.value32 represents 32-bit integer data.
|
||||
* pname:data.value64 represents 64-bit integer data.
|
||||
* pname:data.valueFloat represents floating-point data.
|
||||
* pname:data.valueBool represents basetype:Bool32 data.
|
||||
* pname:data.valueString represents a pointer to a NULL-terminated string.
|
||||
|
||||
The correct member of the union is determined by the associated
|
||||
elink:VkPerformanceValueTypeINTEL value.
|
||||
|
||||
include::{generated}/validity/structs/VkPerformanceValueDataINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkQueryPoolCreateInfoINTEL',desc='Structure specifying parameters to create a pool of performance queries',type='structs']
|
||||
--
|
||||
The sname:VkQueryPoolCreateInfoINTEL structure is defined as:
|
||||
|
||||
include::{generated}/api/structs/VkQueryPoolCreateInfoINTEL.txt[]
|
||||
|
||||
To create a pool for Intel performance queries, set
|
||||
slink:VkQueryPoolCreateInfo::pname:queryType to
|
||||
ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL and add a
|
||||
sname:VkQueryPoolCreateInfoINTEL to the pname:pNext chain of the
|
||||
slink:VkQueryPoolCreateInfo structure.
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:performanceCountersSampling describe how performance queries
|
||||
should be captured.
|
||||
|
||||
include::{generated}/validity/structs/VkQueryPoolCreateInfoINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkQueryPoolSamplingModeINTEL',desc='Enum specifying how performance queries should be captured',type='enums']
|
||||
--
|
||||
Possible values of
|
||||
slink:VkQueryPoolCreateInfoINTEL::pname:performanceCountersSampling are:
|
||||
|
||||
include::{generated}/api/enums/VkQueryPoolSamplingModeINTEL.txt[]
|
||||
|
||||
* ename:VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL is the default mode in
|
||||
which the application calls flink:vkCmdBeginQuery and
|
||||
flink:vkCmdEndQuery to record performance data.
|
||||
--
|
||||
|
||||
[open,refpage='vkCmdSetPerformanceMarkerINTEL',desc='Markers',type='protos']
|
||||
--
|
||||
To help associate query results with a particular point at which an
|
||||
application emitted commands, markers can be set into the command buffers
|
||||
with the call:
|
||||
|
||||
include::{generated}/api/protos/vkCmdSetPerformanceMarkerINTEL.txt[]
|
||||
|
||||
The last marker set onto a command buffer before the end of a query will be
|
||||
part of the query result.
|
||||
|
||||
include::{generated}/validity/protos/vkCmdSetPerformanceMarkerINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceMarkerInfoINTEL',desc='Structure specifying performance markers',type='structs']
|
||||
--
|
||||
The sname:VkPerformanceMarkerInfoINTEL structure is defined as:
|
||||
|
||||
include::{generated}/api/structs/VkPerformanceMarkerInfoINTEL.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:marker is the marker value that will be recorded into the opaque
|
||||
query results.
|
||||
|
||||
include::{generated}/validity/structs/VkPerformanceMarkerInfoINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='vkCmdSetPerformanceStreamMarkerINTEL',desc='Markers',type='protos']
|
||||
--
|
||||
When monitoring the behavior of an application wihtin the dataset generated
|
||||
by the entire set of applications running on the system, it is useful to
|
||||
identify draw calls within a potentially huge amount of performance data.
|
||||
To do so, application can generate stream markers that will be used to trace
|
||||
back a particular draw call with a particular performance data item.
|
||||
|
||||
include::{generated}/api/protos/vkCmdSetPerformanceStreamMarkerINTEL.txt[]
|
||||
|
||||
include::{generated}/validity/protos/vkCmdSetPerformanceStreamMarkerINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceStreamMarkerInfoINTEL',desc='Structure specifying stream performance markers',type='structs']
|
||||
--
|
||||
The sname:VkPerformanceStreamMarkerInfoINTEL structure is defined as:
|
||||
|
||||
include::{generated}/api/structs/VkPerformanceStreamMarkerInfoINTEL.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:marker is the marker value that will be recorded into the reports
|
||||
consumed by an external application.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkPerformanceStreamMarkerInfoINTEL-marker-02735]]
|
||||
The value written by the application into pname:marker must: only used
|
||||
the valid bits as reported by flink:vkGetPerformanceParameterINTEL with
|
||||
the ename:VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL.
|
||||
****
|
||||
|
||||
include::{generated}/validity/structs/VkPerformanceStreamMarkerInfoINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='vkCmdSetPerformanceOverrideINTEL',desc='Performance override settings',type='protos']
|
||||
--
|
||||
Some applications might want measure the effect of a set of commands with a
|
||||
different settings.
|
||||
It is possible to override a particular settings using :
|
||||
|
||||
include::{generated}/api/protos/vkCmdSetPerformanceOverrideINTEL.txt[]
|
||||
|
||||
* pname:commandBuffer is the command buffer where the override takes
|
||||
place.
|
||||
* pname:pOverrideInfo is a pointer to a
|
||||
sname:VkPerformanceOverrideInfoINTEL selecting the parameter to
|
||||
override.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736]]
|
||||
pname:pOverrideInfo must: not be used with a
|
||||
elink:VkPerformanceOverrideTypeINTEL that is not reported available by
|
||||
fname:vkGetPerformanceParameterINTEL.
|
||||
****
|
||||
|
||||
include::{generated}/validity/protos/vkCmdSetPerformanceOverrideINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceOverrideInfoINTEL',desc='Performance override info',type='structs']
|
||||
--
|
||||
The sname:VkPerformanceOverrideInfoINTEL structure is defined as:
|
||||
|
||||
include::{generated}/api/structs/VkPerformanceOverrideInfoINTEL.txt[]
|
||||
|
||||
* pname:type is the particular elink:VkPerformanceOverrideTypeINTEL to
|
||||
set.
|
||||
* pname:enable defines whether the override is enabled.
|
||||
* pname:parameter is a potential required parameter for the override.
|
||||
|
||||
include::{generated}/validity/structs/VkPerformanceOverrideInfoINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceOverrideTypeINTEL',desc='Performance override type',type='enums']
|
||||
--
|
||||
Possible values of slink:VkPerformanceOverrideInfoINTEL::pname:type,
|
||||
specifying performance override types, are:
|
||||
|
||||
include::{generated}/api/enums/VkPerformanceOverrideTypeINTEL.txt[]
|
||||
|
||||
* ename:VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL turns all
|
||||
rendering operations into noop.
|
||||
* ename:VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL stalls the
|
||||
stream of commands until all previously emitted commands have completed
|
||||
and all caches been flushed and invalidated.
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceConfigurationINTEL',desc='Device configuration for performance queries',type='handles']
|
||||
--
|
||||
Before submitting command buffers containing performance queries commands to
|
||||
a device queue, the application must acquire and set a performance query
|
||||
configuration.
|
||||
The configuration can be released once all command buffers containing
|
||||
performance query commands are not in a pending state.
|
||||
|
||||
include::{generated}/api/handles/VkPerformanceConfigurationINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='vkAcquirePerformanceConfigurationINTEL',desc='Acquire the performance query capability',type='protos']
|
||||
--
|
||||
To acquire a device performance configuration, call:
|
||||
|
||||
include::{generated}/api/protos/vkAcquirePerformanceConfigurationINTEL.txt[]
|
||||
|
||||
* pname:device is the logical device that the performance query commands
|
||||
will be submitted to.
|
||||
* pname:pAcquireInfo is a pointer to
|
||||
slink:VkPerformanceConfigurationAcquireInfoINTEL.
|
||||
* pname:pConfiguration is a pointer to a
|
||||
sname:VkPerformanceConfigurationINTEL handle in which the resulting
|
||||
configuration object is returned.
|
||||
|
||||
include::{generated}/validity/protos/vkAcquirePerformanceConfigurationINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceConfigurationAcquireInfoINTEL',desc='Acquire a configuration to capture performance data',type='structs']
|
||||
--
|
||||
The sname:VkPerformanceConfigurationAcquireInfoINTEL structure is defined
|
||||
as:
|
||||
|
||||
include::{generated}/api/structs/VkPerformanceConfigurationAcquireInfoINTEL.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:type is one of the elink:VkPerformanceConfigurationTypeINTEL type
|
||||
of performance configuration that will be acquired.
|
||||
|
||||
include::{generated}/validity/structs/VkPerformanceConfigurationAcquireInfoINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPerformanceConfigurationTypeINTEL',desc='Type of performance configuration',type='enums']
|
||||
--
|
||||
Possible values of
|
||||
slink:VkPerformanceConfigurationAcquireInfoINTEL::pname:type, specifying
|
||||
performance configuration types, are:
|
||||
|
||||
include::{generated}/api/enums/VkPerformanceConfigurationTypeINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='vkQueueSetPerformanceConfigurationINTEL',desc='Set a performance query',type='protos']
|
||||
--
|
||||
To set a performance configuration, call:
|
||||
|
||||
include::{generated}/api/protos/vkQueueSetPerformanceConfigurationINTEL.txt[]
|
||||
|
||||
* pname:queue is the queue on which the configuration will be used.
|
||||
* pname:configuration is the configuration to use.
|
||||
|
||||
include::{generated}/validity/protos/vkQueueSetPerformanceConfigurationINTEL.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='vkReleasePerformanceConfigurationINTEL',desc='Release a configuration to capture performance data',type='protos']
|
||||
--
|
||||
To release a device performance configuration, call:
|
||||
|
||||
include::{generated}/api/protos/vkReleasePerformanceConfigurationINTEL.txt[]
|
||||
|
||||
* pname:device is the device associated to the configuration object to
|
||||
release.
|
||||
* pname:configuration is the configuration object to release.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737]]
|
||||
pname:configuration must: not be released before all command buffers
|
||||
submitted while the configuration was set are in
|
||||
<<commandbuffers-lifecycle, pending state>>.
|
||||
****
|
||||
|
||||
include::{generated}/validity/protos/vkReleasePerformanceConfigurationINTEL.txt[]
|
||||
--
|
||||
|
||||
endif::VK_INTEL_performance_query[]
|
|
@ -352,6 +352,14 @@ include::{generated}/api/structs/VkDisplayModePropertiesKHR.txt[]
|
|||
include::{generated}/validity/structs/VkDisplayModePropertiesKHR.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkDisplayModeCreateFlagsKHR',desc='Reserved for future use',type='flags']
|
||||
--
|
||||
include::{generated}/api/flags/VkDisplayModeCreateFlagsKHR.txt[]
|
||||
|
||||
tname:VkDisplayModeCreateFlagsKHR is a bitmask type for setting a mask, but
|
||||
is currently reserved for future use.
|
||||
--
|
||||
|
||||
ifdef::VK_KHR_get_display_properties2[]
|
||||
|
||||
[open,refpage='vkGetDisplayModeProperties2KHR',desc='Query information about the available display modes.',type='protos']
|
||||
|
@ -724,6 +732,14 @@ to a display surface.
|
|||
include::{generated}/validity/structs/VkDisplaySurfaceCreateInfoKHR.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkDisplaySurfaceCreateFlagsKHR',desc='Reserved for future use',type='flags']
|
||||
--
|
||||
include::{generated}/api/flags/VkDisplaySurfaceCreateFlagsKHR.txt[]
|
||||
|
||||
tname:VkDisplaySurfaceCreateFlagsKHR is a bitmask type for setting a mask,
|
||||
but is currently reserved for future use.
|
||||
--
|
||||
|
||||
[open,refpage='VkDisplayPlaneAlphaFlagBitsKHR',desc='Alpha blending type',type='enums']
|
||||
--
|
||||
|
||||
|
|
|
@ -36,8 +36,10 @@ include::{generated}/api/structs/VkWin32SurfaceCreateInfoKHR.txt[]
|
|||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:flags is reserved for future use.
|
||||
* pname:hinstance and pname:hwnd are the Win32 code:HINSTANCE and
|
||||
code:HWND for the window to associate the surface with.
|
||||
* pname:hinstance is the Win32 code:HINSTANCE for the window to associate
|
||||
the surface with.
|
||||
* pname:hwnd is the Win32 code:HWND for the window to associate the
|
||||
surface with.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
|
@ -67,3 +69,11 @@ The window size may: become [eq]#(0, 0)# on this platform (e.g. when the
|
|||
window is minimized), and so a swapchain cannot: be created until the size
|
||||
changes.
|
||||
====
|
||||
|
||||
[open,refpage='VkWin32SurfaceCreateFlagsKHR',desc='Reserved for future use',type='flags']
|
||||
--
|
||||
include::{generated}/api/flags/VkWin32SurfaceCreateFlagsKHR.txt[]
|
||||
|
||||
tname:VkWin32SurfaceCreateFlagsKHR is a bitmask type for setting a mask, but
|
||||
is currently reserved for future use.
|
||||
--
|
||||
|
|
|
@ -416,9 +416,8 @@ The sname:VkClearColorValue structure is defined as:
|
|||
include::{generated}/api/structs/VkClearColorValue.txt[]
|
||||
|
||||
* pname:float32 are the color clear values when the format of the image or
|
||||
attachment is one of the formats in the <<formats-numericformat,
|
||||
Interpretation of Numeric Format>> table other than signed integer
|
||||
(etext:SINT) or unsigned integer (etext:UINT).
|
||||
attachment is one of the formats in the <<formats-numericformat>> table
|
||||
other than signed integer (etext:SINT) or unsigned integer (etext:UINT).
|
||||
Floating point values are automatically converted to the format of the
|
||||
image, with the clear value being treated as linear if the image is
|
||||
sRGB.
|
||||
|
|
|
@ -77,6 +77,9 @@ endif::VK_EXT_validation_cache[]
|
|||
ifdef::VK_NV_ray_tracing[]
|
||||
| ename:VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV | slink:VkAccelerationStructureNV
|
||||
endif::VK_NV_ray_tracing[]
|
||||
ifdef::VK_INTEL_performance_query[]
|
||||
| ename:VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL | slink:VkPerformanceConfigurationINTEL
|
||||
endif::VK_INTEL_performance_query[]
|
||||
|====
|
||||
|
||||
--
|
||||
|
|
|
@ -757,6 +757,21 @@ Device groups are enumerated by calling
|
|||
flink:vkEnumeratePhysicalDeviceGroups, and a logical device is created from
|
||||
a subset of the physical devices in a device group by passing the physical
|
||||
devices through slink:VkDeviceGroupDeviceCreateInfo.
|
||||
For two physical devices to be in the same device group, they must: support
|
||||
identical extensions, features, and properties.
|
||||
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
Physical devices in the same device group must: be so similar because there
|
||||
are no rules for how different features/properties would interact.
|
||||
They must: return the same values for nearly every invariant
|
||||
ftext:vkGetPhysicalDevice* feature, property, capability, etc., but could
|
||||
potentially differ for certain queries based on things like having a
|
||||
different display connected, or different compositor, etc..
|
||||
The specification does not attempt to enumerate which state is in each
|
||||
category, because such a list would quickly become out of date.
|
||||
====
|
||||
|
||||
[open,refpage='vkEnumeratePhysicalDeviceGroups',desc='Enumerates groups of physical devices that can be used to create a single logical device',type='protos']
|
||||
--
|
||||
|
|
|
@ -2086,8 +2086,8 @@ ifdef::VK_INTEL_shader_integer_functions2[]
|
|||
|
||||
[open,refpage='VkPhysicalDeviceShaderIntegerFunctions2INTEL',desc='Structure describing shader integer functions that can be supported by an implementation',type='structs']
|
||||
--
|
||||
The sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL structure is
|
||||
defined as:
|
||||
The sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL structure is defined
|
||||
as:
|
||||
|
||||
include::{generated}/api/structs/VkPhysicalDeviceShaderIntegerFunctions2INTEL.txt[]
|
||||
|
||||
|
@ -2098,11 +2098,11 @@ structure describe the following features:
|
|||
indicates that the implementation supports the
|
||||
code:ShaderIntegerFunctions2INTEL SPIR-V capability.
|
||||
|
||||
If the sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL structure
|
||||
is included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR,
|
||||
it is filled with values indicating whether the feature is supported.
|
||||
sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL can: also be used
|
||||
in the pname:pNext chain of slink:VkDeviceCreateInfo to enable features.
|
||||
If the sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR, it
|
||||
is filled with values indicating whether the feature is supported.
|
||||
sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL can: also be used in the
|
||||
pname:pNext chain of slink:VkDeviceCreateInfo to enable features.
|
||||
|
||||
include::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerFunctions2INTEL.txt[]
|
||||
--
|
||||
|
|
|
@ -1289,18 +1289,18 @@ An X indicates a component that is unused, but may: be present for padding.
|
|||
|
||||
[[formats-numericformat]]
|
||||
.Interpretation of Numeric Format
|
||||
[width="95%",cols="2,10",options="header"]
|
||||
[width="95%",cols="2,3,10",options="header"]
|
||||
|====
|
||||
| Numeric format | Description
|
||||
| etext:UNORM | The components are unsigned normalized values in the range [eq]#[0,1]#
|
||||
| etext:SNORM | The components are signed normalized values in the range [eq]#[-1,1]#
|
||||
| etext:USCALED | The components are unsigned integer values that get converted to floating-point in the range [0,2^n^-1]
|
||||
| etext:SSCALED | The components are signed integer values that get converted to floating-point in the range [-2^n-1^,2^n-1^-1]
|
||||
| etext:UINT | The components are unsigned integer values in the range [0,2^n^-1]
|
||||
| etext:SINT | The components are signed integer values in the range [-2^n-1^,2^n-1^-1]
|
||||
| etext:UFLOAT | The components are unsigned floating-point numbers (used by packed, shared exponent, and some compressed formats)
|
||||
| etext:SFLOAT | The components are signed floating-point numbers
|
||||
| etext:SRGB | The R, G, and B components are unsigned normalized values that represent values using sRGB nonlinear encoding, while the A component (if one exists) is a regular unsigned normalized value
|
||||
| Numeric format | SPIR-V _Sampled Type_ | Description
|
||||
| etext:UNORM | OpTypeFloat | The components are unsigned normalized values in the range [eq]#[0,1]#
|
||||
| etext:SNORM | OpTypeFloat | The components are signed normalized values in the range [eq]#[-1,1]#
|
||||
| etext:USCALED | OpTypeFloat | The components are unsigned integer values that get converted to floating-point in the range [0,2^n^-1]
|
||||
| etext:SSCALED | OpTypeFloat | The components are signed integer values that get converted to floating-point in the range [-2^n-1^,2^n-1^-1]
|
||||
| etext:UINT | OpTypeInt unsigned | The components are unsigned integer values in the range [0,2^n^-1]
|
||||
| etext:SINT | OpTypeInt signed | The components are signed integer values in the range [-2^n-1^,2^n-1^-1]
|
||||
| etext:UFLOAT | OpTypeFloat | The components are unsigned floating-point numbers (used by packed, shared exponent, and some compressed formats)
|
||||
| etext:SFLOAT | OpTypeFloat | The components are signed floating-point numbers
|
||||
| etext:SRGB | OpTypeFloat | The R, G, and B components are unsigned normalized values that represent values using sRGB nonlinear encoding, while the A component (if one exists) is a regular unsigned normalized value
|
||||
|====
|
||||
|
||||
The suffix etext:_PACKnn indicates that the format is packed into an
|
||||
|
@ -2650,7 +2650,7 @@ s| Format
|
|||
<<<
|
||||
|
||||
[[formats-mandatory-features-10bit]]
|
||||
.Mandatory format support: 10-bit channels
|
||||
.Mandatory format support: 10- and 12-bit channels
|
||||
[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"]
|
||||
|====
|
||||
13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow}
|
||||
|
@ -2679,6 +2679,12 @@ s| Format
|
|||
| ename:VK_FORMAT_A2B10G10R10_SSCALED_PACK32 | | | | | | | | | | | | |
|
||||
| ename:VK_FORMAT_A2B10G10R10_UINT_PACK32 | {sym1} | {sym1} | | | | {sym1} | {sym1} | | | | {sym1} | |
|
||||
| ename:VK_FORMAT_A2B10G10R10_SINT_PACK32 | | | | | | | | | | | | |
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
|
||||
| ename:VK_FORMAT_R10X6_UNORM_PACK16 | | | | | | | | | | | | |
|
||||
| ename:VK_FORMAT_R10X6G10X6_UNORM_2PACK16 | | | | | | | | | | | | |
|
||||
| ename:VK_FORMAT_R12X4_UNORM_PACK16 | | | | | | | | | | | | |
|
||||
| ename:VK_FORMAT_R12X4G12X4_UNORM_2PACK16 | | | | | | | | | | | | |
|
||||
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
|
||||
|====
|
||||
|
||||
<<<
|
||||
|
|
|
@ -45,7 +45,7 @@ sname:VkPhysicalDeviceFragmentDensityMapPropertiesEXT and therefore the
|
|||
final region size is clamped:
|
||||
|
||||
:: latexmath:[fragmentDensityTexelSize_{width} =
|
||||
\mathbin{clamp}(fragmentDensityTexelSize'_{width},minFragmentDensityTexelSize_{width},maxFragmentDensityTexelSize_{height})]
|
||||
\mathbin{clamp}(fragmentDensityTexelSize'_{width},minFragmentDensityTexelSize_{width},maxFragmentDensityTexelSize_{width})]
|
||||
:: latexmath:[fragmentDensityTexelSize_{height} =
|
||||
\mathbin{clamp}(fragmentDensityTexelSize'_{height},minFragmentDensityTexelSize_{height},maxFragmentDensityTexelSize_{height})]
|
||||
|
||||
|
|
|
@ -520,8 +520,10 @@ Such variables must: be typed as code:OpTypeImage, code:OpTypeSampler,
|
|||
code:OpTypeSampledImage, or an array of one of these types.
|
||||
|
||||
The code:Sampled code:Type of an code:OpTypeImage declaration must: match
|
||||
the same basic data type as the corresponding resource, or the values
|
||||
obtained by reading or sampling from this image are undefined:.
|
||||
the numeric format of the corresponding resource in type and signedness, as
|
||||
shown in the _SPIR-V Sampled Type_ column of the <<formats-numericformat>>
|
||||
table, or the values obtained by reading or sampling from this image are
|
||||
undefined:.
|
||||
|
||||
The code:Image code:Format of an code:OpTypeImage declaration must: not be
|
||||
*Unknown*, for variables which are used for code:OpImageRead,
|
||||
|
|
|
@ -461,17 +461,18 @@ endif::VK_EXT_descriptor_indexing[]
|
|||
* [[limits-maxComputeWorkGroupInvocations]]
|
||||
pname:maxComputeWorkGroupInvocations is the maximum total number of
|
||||
compute shader invocations in a single local workgroup.
|
||||
The product of the X, Y, and Z sizes as specified by the code:LocalSize
|
||||
execution mode in shader modules and by the object decorated by the
|
||||
code:WorkgroupSize decoration must: be less than or equal to this limit.
|
||||
The product of the X, Y, and Z sizes, as specified by the code:LocalSize
|
||||
execution mode in shader modules or by the object decorated by the
|
||||
code:WorkgroupSize decoration, must: be less than or equal to this
|
||||
limit.
|
||||
* [[limits-maxComputeWorkGroupSize]] pname:maxComputeWorkGroupSize[3] is
|
||||
the maximum size of a local compute workgroup, per dimension.
|
||||
These three values represent the maximum local workgroup size in the X,
|
||||
Y, and Z dimensions, respectively.
|
||||
The pname:x, pname:y, and pname:z sizes specified by the code:LocalSize
|
||||
execution mode and by the object decorated by the code:WorkgroupSize
|
||||
decoration in shader modules must: be less than or equal to the
|
||||
corresponding limit.
|
||||
The pname:x, pname:y, and pname:z sizes, as specified by the
|
||||
code:LocalSize execution mode or by the object decorated by the
|
||||
code:WorkgroupSize decoration in shader modules, must: be less than or
|
||||
equal to the corresponding limit.
|
||||
* [[limits-subPixelPrecisionBits]] pname:subPixelPrecisionBits is the
|
||||
number of bits of subpixel precision in framebuffer coordinates
|
||||
[eq]#x~f~# and [eq]#y~f~#.
|
||||
|
@ -1465,34 +1466,36 @@ describe the following implementation-dependent limits:
|
|||
See <<drawing-mesh-shading>>.
|
||||
* pname:maxTaskWorkGroupInvocations is the maximum total number of task
|
||||
shader invocations in a single local workgroup.
|
||||
The product of the X, Y, and Z sizes as specified by the code:LocalSize
|
||||
execution mode in shader modules and by the object decorated by the
|
||||
code:WorkgroupSize decoration must: be less than or equal to this limit.
|
||||
The product of the X, Y, and Z sizes, as specified by the code:LocalSize
|
||||
execution mode in shader modules or by the object decorated by the
|
||||
code:WorkgroupSize decoration, must: be less than or equal to this
|
||||
limit.
|
||||
* pname:maxTaskWorkGroupSize[3] is the maximum size of a local task
|
||||
workgroup.
|
||||
These three values represent the maximum local workgroup size in the X,
|
||||
Y, and Z dimensions, respectively.
|
||||
The pname:x, pname:y, and pname:z sizes specified by the code:LocalSize
|
||||
execution mode and by the object decorated by the code:WorkgroupSize
|
||||
decoration in shader modules must: be less than or equal to the
|
||||
corresponding limit.
|
||||
The pname:x, pname:y, and pname:z sizes, as specified by the
|
||||
code:LocalSize execution mode or by the object decorated by the
|
||||
code:WorkgroupSize decoration in shader modules, must: be less than or
|
||||
equal to the corresponding limit.
|
||||
* pname:maxTaskTotalMemorySize is the maximum number of bytes that the
|
||||
task shader can use in total for shared and output memory combined.
|
||||
* pname:maxTaskOutputCount is the maximum number of output tasks a single
|
||||
task shader workgroup can emit.
|
||||
* pname:maxMeshWorkGroupInvocations is the maximum total number of mesh
|
||||
shader invocations in a single local workgroup.
|
||||
The product of the X, Y, and Z sizes as specified by the code:LocalSize
|
||||
execution mode in shader modules and by the object decorated by the
|
||||
code:WorkgroupSize decoration must: be less than or equal to this limit.
|
||||
The product of the X, Y, and Z sizes, as specified by the code:LocalSize
|
||||
execution mode in shader modules or by the object decorated by the
|
||||
code:WorkgroupSize decoration, must: be less than or equal to this
|
||||
limit.
|
||||
* pname:maxMeshWorkGroupSize[3] is the maximum size of a local mesh
|
||||
workgroup.
|
||||
These three values represent the maximum local workgroup size in the X,
|
||||
Y, and Z dimensions, respectively.
|
||||
The pname:x, pname:y, and pname:z sizes specified by the code:LocalSize
|
||||
execution mode and by the object decorated by the code:WorkgroupSize
|
||||
decoration in shader modules must: be less than or equal to the
|
||||
corresponding limit.
|
||||
The pname:x, pname:y, and pname:z sizes, as specified by the
|
||||
code:LocalSize execution mode or by the object decorated by the
|
||||
code:WorkgroupSize decoration in shader modules, must: be less than or
|
||||
equal to the corresponding limit.
|
||||
* pname:maxMeshTotalMemorySize is the maximum number of bytes that the
|
||||
mesh shader can use in total for shared and output memory combined.
|
||||
* pname:maxMeshOutputVertices is the maximum number of vertices a mesh
|
||||
|
|
|
@ -467,8 +467,8 @@ To query memory properties, call:
|
|||
include::{generated}/api/protos/vkGetPhysicalDeviceMemoryProperties.txt[]
|
||||
|
||||
* pname:physicalDevice is the handle to the device to query.
|
||||
* pname:pMemoryProperties points to an instance of
|
||||
sname:VkPhysicalDeviceMemoryProperties structure in which the properties
|
||||
* pname:pMemoryProperties points to an instance of the
|
||||
slink:VkPhysicalDeviceMemoryProperties structure in which the properties
|
||||
are returned.
|
||||
|
||||
include::{generated}/validity/protos/vkGetPhysicalDeviceMemoryProperties.txt[]
|
||||
|
@ -652,8 +652,8 @@ include::{generated}/api/protos/vkGetPhysicalDeviceMemoryProperties2KHR.txt[]
|
|||
endif::VK_KHR_get_physical_device_properties2[]
|
||||
|
||||
* pname:physicalDevice is the handle to the device to query.
|
||||
* pname:pMemoryProperties points to an instance of
|
||||
sname:VkPhysicalDeviceMemoryProperties2 structure in which the
|
||||
* pname:pMemoryProperties points to an instance of the
|
||||
slink:VkPhysicalDeviceMemoryProperties2 structure in which the
|
||||
properties are returned.
|
||||
|
||||
fname:vkGetPhysicalDeviceMemoryProperties2 behaves similarly to
|
||||
|
@ -2834,7 +2834,7 @@ Protected memory adds the following concepts:
|
|||
* Queue operations
|
||||
** Unprotected queue operations
|
||||
** Protected queue operations
|
||||
|
||||
|
||||
[[memory-protected-access-rules]]
|
||||
==== Protected Memory Access Rules
|
||||
|
||||
|
@ -2848,7 +2848,7 @@ operations:
|
|||
transfer stage.
|
||||
* Perform a query within protected queue operations.
|
||||
* Execute an indirect command within protected queue operations.
|
||||
|
||||
|
||||
If slink:VkPhysicalDeviceProtectedMemoryProperties::pname:protectedNoFault
|
||||
is ename:VK_TRUE, these operations are valid, but reads will return
|
||||
undefined: values, and writes will either be dropped or store undefined:
|
||||
|
|
|
@ -17,7 +17,10 @@ buffer object on the device.
|
|||
The supported query types are <<queries-occlusion,Occlusion Queries>>,
|
||||
<<queries-pipestats,Pipeline Statistics Queries>>, and <<queries-timestamps,
|
||||
Timestamp Queries>>.
|
||||
|
||||
ifdef::VK_INTEL_performance_query[]
|
||||
<<queries-performance-intel>> are also supported if the associated extension
|
||||
is available.
|
||||
endif::VK_INTEL_performance_query[]
|
||||
|
||||
[[queries-pools]]
|
||||
== Query Pools
|
||||
|
@ -144,6 +147,10 @@ ifdef::VK_EXT_transform_feedback[]
|
|||
* ename:VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT specifies a
|
||||
<<queries-transform-feedback, transform feedback query>>.
|
||||
endif::VK_EXT_transform_feedback[]
|
||||
ifdef::VK_INTEL_performance_query[]
|
||||
* ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL specifies a
|
||||
<<queries-performance-intel, Intel performance query>>.
|
||||
endif::VK_INTEL_performance_query[]
|
||||
|
||||
--
|
||||
|
||||
|
@ -924,6 +931,12 @@ before using the results.
|
|||
If the pname:queryType used to create pname:queryPool was
|
||||
ename:VK_QUERY_TYPE_TIMESTAMP, pname:flags must: not contain
|
||||
ename:VK_QUERY_RESULT_PARTIAL_BIT
|
||||
ifdef::VK_INTEL_performance_query[]
|
||||
* [[VUID-vkCmdCopyQueryPoolResults-queryType-02734]]
|
||||
flink:vkCmdCopyQueryPoolResults must: not be called if the
|
||||
pname:queryType used to create pname:queryPool was
|
||||
ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL.
|
||||
endif::VK_INTEL_performance_query[]
|
||||
****
|
||||
|
||||
include::{generated}/validity/protos/vkCmdCopyQueryPoolResults.txt[]
|
||||
|
@ -1300,3 +1313,7 @@ fname:vkGetQueryPoolResults).
|
|||
|
||||
|
||||
endif::VK_EXT_transform_feedback[]
|
||||
|
||||
ifdef::VK_INTEL_performance_query[]
|
||||
include::VK_INTEL_performance_query/queries.txt[]
|
||||
endif::VK_INTEL_performance_query[]
|
||||
|
|
|
@ -2246,7 +2246,11 @@ are otherwise identical except for:
|
|||
|
||||
As an additional special case, if two render passes have a single subpass,
|
||||
they are compatible even if they have different resolve attachment
|
||||
references but satisfy the other compatibility conditions.
|
||||
references
|
||||
ifdef::VK_KHR_depth_stencil_resolve[]
|
||||
or depth/stencil resolve modes
|
||||
endif::VK_KHR_depth_stencil_resolve[]
|
||||
but satisfy the other compatibility conditions.
|
||||
|
||||
A framebuffer is compatible with a render pass if it was created using the
|
||||
same render pass or a compatible render pass.
|
||||
|
|
|
@ -4628,16 +4628,51 @@ The set of supported time domains consists of:
|
|||
include::{generated}/api/enums/VkTimeDomainEXT.txt[]
|
||||
|
||||
* ename:VK_TIME_DOMAIN_DEVICE_EXT specifies the device time domain.
|
||||
Timestamp values in this time domain are comparable with device
|
||||
timestamp values captured using flink:vkCmdWriteTimestamp and are
|
||||
defined to be incrementing according to the
|
||||
<<limits-timestampPeriod,timestampPeriod>> of the device.
|
||||
Timestamp values in this time domain use the same units and are
|
||||
comparable with device timestamp values captured using
|
||||
flink:vkCmdWriteTimestamp and are defined to be incrementing according
|
||||
to the <<limits-timestampPeriod,timestampPeriod>> of the device.
|
||||
|
||||
* ename:VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT specifies the CLOCK_MONOTONIC
|
||||
time domain available on POSIX platforms.
|
||||
Timestamp values in this time domain are in units of nanoseconds and are
|
||||
comparable with platform timestamp values captured using the POSIX
|
||||
clock_gettime API as computed by this example:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct timespec tv;
|
||||
clock_gettime(CLOCK_MONOTONIC, &tv);
|
||||
return tv.tv_nsec + tv.tv_sec*1000000000ull;
|
||||
----
|
||||
|
||||
* ename:VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT specifies the
|
||||
CLOCK_MONOTONIC_RAW time domain available on POSIX platforms.
|
||||
Timestamp values in this time domain are in units of nanoseconds and are
|
||||
comparable with platform timestamp values captured using the POSIX
|
||||
clock_gettime API as computed by this example:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct timespec tv;
|
||||
clock_gettime(CLOCK_MONOTONIC_RAW, &tv);
|
||||
return tv.tv_nsec + tv.tv_sec*1000000000ull;
|
||||
----
|
||||
|
||||
* ename:VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT specifies the
|
||||
performance counter (QPC) time domain available on Windows.
|
||||
Timestamp values in this time domain are in the same units as those
|
||||
provided by the Windows QueryPerformanceCounter API and are comparable
|
||||
with platform timestamp values captured using that API as computed by
|
||||
this example:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
LARGE_INTEGER counter;
|
||||
QueryPerformanceCounter(&counter);
|
||||
return counter.QuadPart;
|
||||
----
|
||||
|
||||
--
|
||||
|
||||
endif::VK_EXT_calibrated_timestamps[]
|
||||
|
|
|
@ -430,7 +430,7 @@ The area between the outer and inner rectangles is completely filled by
|
|||
non-overlapping triangles.
|
||||
Two of the three vertices of each triangle are adjacent vertices on a
|
||||
subdivided edge of one rectangle; the third is one of the vertices on the
|
||||
corresponding edge of the other triangle.
|
||||
corresponding edge of the other rectangle.
|
||||
If either edge of the innermost rectangle is degenerate, the area near the
|
||||
corresponding outer edges is filled by connecting each vertex on the outer
|
||||
edge with the single vertex making up the _inner edge_.
|
||||
|
|
|
@ -724,7 +724,7 @@ if __name__ == '__main__':
|
|||
for prefix in conventions.extension_index_prefixes:
|
||||
# Splits up into chunks, sorted within each chunk.
|
||||
filtered_extensions = sorted(
|
||||
[name for name in ext_names
|
||||
[name for name in desired_extensions
|
||||
if name.startswith(prefix) and name not in extensions])
|
||||
for name in filtered_extensions:
|
||||
extensions[name] = None
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# The value to start tagging VU statements at, unless overridden by -nextvu
|
||||
startVUID = 2734
|
||||
startVUID = 2738
|
||||
|
|
|
@ -812,13 +812,13 @@ extensions must define two additional tokens.
|
|||
files and the revision supported by the Vulkan implementation (the
|
||||
pname:specVersion field of the sname:VkExtensionProperties structure
|
||||
corresponding to the extension and returned by one of the
|
||||
link:html/vkspec.html#extendingvulkan-extensions[extension queries])
|
||||
may differ.
|
||||
link:html/vkspec.html#extendingvulkan-extensions[extension queries]) may
|
||||
differ.
|
||||
The revision value indicates a patch version of the extension
|
||||
specification, and differences in this version number maintain full
|
||||
compatibility, as defined in the
|
||||
link:html/vkspec.html#_compatibility_guarantees_informative[Compatibility Guarantees]
|
||||
section of the <<vulkan-spec,Vulkan API Specification>>.
|
||||
link:html/vkspec.html#_compatibility_guarantees_informative[Compatibility
|
||||
Guarantees] section of the <<vulkan-spec,Vulkan API Specification>>.
|
||||
|
||||
[NOTE]
|
||||
.Note
|
||||
|
|
|
@ -276,8 +276,8 @@ application behavior.
|
|||
If the results are not invariant, the lifetime of the results should be
|
||||
clearly described in the command description.
|
||||
See
|
||||
link:html/vkspec.html#fundamentals-commandsyntax-results-lifetime[Lifetime of Retrieved Results]
|
||||
in the specification for more information.
|
||||
link:html/vkspec.html#fundamentals-commandsyntax-results-lifetime[Lifetime
|
||||
of Retrieved Results] in the specification for more information.
|
||||
|
||||
These commands fall into two categories from a naming perspective:
|
||||
|
||||
|
|
|
@ -43,8 +43,9 @@ Never use ambigious formats such as "`09/12/16`".
|
|||
[[writing-misc-a-an]]
|
||||
=== A/An and Markup Macros
|
||||
|
||||
Use "`a`" and "`an`" https://www.grammar.com/a-vs-an-when-to-use/[correctly],
|
||||
based on the *sound* of the letter beginning the following word.
|
||||
Use "`a`" and "`an`"
|
||||
https://www.grammar.com/a-vs-an-when-to-use/[correctly], based on the
|
||||
*sound* of the letter beginning the following word.
|
||||
|
||||
It is easy to get this wrong when talking about Vulkan API names tagged with
|
||||
the <<markup-macros,markup macros>>.
|
||||
|
|
|
@ -113,8 +113,7 @@ which documentation authors must comply.
|
|||
[[iso-8601]]
|
||||
International Organization for Standardization, _Data elements and
|
||||
interchange formats -- Information interchange -- Representation of dates
|
||||
and times_, https://www.iso.org/standard/40874.html,
|
||||
2004-12-01.
|
||||
and times_, https://www.iso.org/standard/40874.html, 2004-12-01.
|
||||
Also see https://www.w3.org/QA/Tips/iso-date for colloquial examples.
|
||||
|
||||
[[vulkan-docs]]
|
||||
|
|
163
xml/vk.xml
163
xml/vk.xml
|
@ -89,6 +89,7 @@ server.
|
|||
<tag name="KHX" author="Khronos" contact="Tom Olson @tomolson"/>
|
||||
<tag name="EXT" author="Multivendor" contact="Jon Leech @oddhack"/>
|
||||
<tag name="MESA" author="Mesa open source project" contact="Chad Versace @chadversary, Daniel Stone @fooishbar, David Airlie @airlied, Jason Ekstrand @jekstrand"/>
|
||||
<tag name="INTEL" author="Intel Corporation" contact="Slawek Grajewski @sgrajewski"/>
|
||||
</tags>
|
||||
|
||||
<types comment="Vulkan type definitions">
|
||||
|
@ -153,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> 108</type>
|
||||
#define <name>VK_HEADER_VERSION</name> 109</type>
|
||||
|
||||
<type category="define">
|
||||
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
|
||||
|
@ -366,6 +367,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type category="handle" name="VkSamplerYcbcrConversionKHR" alias="VkSamplerYcbcrConversion"/>
|
||||
<type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkValidationCacheEXT</name>)</type>
|
||||
<type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkAccelerationStructureNV</name>)</type>
|
||||
<type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPerformanceConfigurationINTEL</name>)</type>
|
||||
|
||||
<comment>WSI extensions</comment>
|
||||
<type category="handle"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDisplayKHR</name>)</type>
|
||||
|
@ -499,6 +501,11 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type name="VkScopeNV" category="enum"/>
|
||||
<type name="VkComponentTypeNV" category="enum"/>
|
||||
<type name="VkPipelineCreationFeedbackFlagBitsEXT" category="enum"/>
|
||||
<type name="VkPerformanceConfigurationTypeINTEL" category="enum"/>
|
||||
<type name="VkQueryPoolSamplingModeINTEL" category="enum"/>
|
||||
<type name="VkPerformanceOverrideTypeINTEL" category="enum"/>
|
||||
<type name="VkPerformanceParameterTypeINTEL" category="enum"/>
|
||||
<type name="VkPerformanceValueTypeINTEL" category="enum"/>
|
||||
|
||||
<comment>WSI extensions</comment>
|
||||
<type name="VkColorSpaceKHR" category="enum"/>
|
||||
|
@ -3896,6 +3903,49 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>shaderIntegerFunctions2</name></member>
|
||||
</type>
|
||||
<type category="union" name="VkPerformanceValueDataINTEL">
|
||||
<member><type>uint32_t</type> <name>value32</name></member>
|
||||
<member><type>uint64_t</type> <name>value64</name></member>
|
||||
<member><type>float</type> <name>valueFloat</name></member>
|
||||
<member><type>VkBool32</type> <name>valueBool</name></member>
|
||||
<member>const <type>char</type>* <name>valueString</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPerformanceValueINTEL">
|
||||
<member><type>VkPerformanceValueTypeINTEL</type> <name>type</name></member>
|
||||
<member><type>VkPerformanceValueDataINTEL</type> <name>data</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkInitializePerformanceApiInfoINTEL" >
|
||||
<member values="VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="false"><type>void</type>* <name>pUserData</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkQueryPoolCreateInfoINTEL">
|
||||
<member values="VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkQueryPoolSamplingModeINTEL</type> <name>performanceCountersSampling</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPerformanceMarkerInfoINTEL">
|
||||
<member values="VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>uint64_t</type> <name>marker</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPerformanceStreamMarkerInfoINTEL">
|
||||
<member values="VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>uint32_t</type> <name>marker</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPerformanceOverrideInfoINTEL">
|
||||
<member values="VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkPerformanceOverrideTypeINTEL</type> <name>type</name></member>
|
||||
<member><type>VkBool32</type> <name>enable</name></member>
|
||||
<member><type>uint64_t</type> <name>parameter</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPerformanceConfigurationAcquireInfoINTEL">
|
||||
<member values="VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkPerformanceConfigurationTypeINTEL</type> <name>type</name></member>
|
||||
</type>
|
||||
</types>
|
||||
|
||||
<comment>Vulkan enumerant (token) definitions</comment>
|
||||
|
@ -5134,6 +5184,28 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum value="2" name="VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT"/>
|
||||
<enum value="3" name="VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT"/>
|
||||
</enums>
|
||||
<enums name="VkPerformanceConfigurationTypeINTEL" type="enum">
|
||||
<enum value="0" name="VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL"/>
|
||||
</enums>
|
||||
<enums name="VkQueryPoolSamplingModeINTEL" type="enum">
|
||||
<enum value="0" name="VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL"/>
|
||||
</enums>
|
||||
<enums name="VkPerformanceOverrideTypeINTEL" type="enum">
|
||||
<enum value="0" name="VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL"/>
|
||||
<enum value="1" name="VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL"/>
|
||||
</enums>
|
||||
<enums name="VkPerformanceParameterTypeINTEL" type="enum">
|
||||
<enum value="0" name="VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL"/>
|
||||
<enum value="1" name="VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL"/>
|
||||
</enums>
|
||||
<enums name="VkPerformanceValueTypeINTEL" type="enum">
|
||||
<enum value="0" name="VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL"/>
|
||||
<enum value="1" name="VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL"/>
|
||||
<enum value="2" name="VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL"/>
|
||||
<enum value="3" name="VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL"/>
|
||||
<enum value="4" name="VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL"/>
|
||||
</enums>
|
||||
|
||||
<commands comment="Vulkan command definitions">
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
|
||||
<proto><type>VkResult</type> <name>vkCreateInstance</name></proto>
|
||||
|
@ -5250,7 +5322,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<proto><type>VkResult</type> <name>vkQueueSubmit</name></proto>
|
||||
<param externsync="true"><type>VkQueue</type> <name>queue</name></param>
|
||||
<param optional="true"><type>uint32_t</type> <name>submitCount</name></param>
|
||||
<param len="submitCount" externsync="pSubmits[].pWaitSemaphores[],pSubmits[].pSignalSemaphores[]">const <type>VkSubmitInfo</type>* <name>pSubmits</name></param>
|
||||
<param len="submitCount">const <type>VkSubmitInfo</type>* <name>pSubmits</name></param>
|
||||
<param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
|
||||
|
@ -5357,7 +5429,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<proto><type>VkResult</type> <name>vkQueueBindSparse</name></proto>
|
||||
<param externsync="true"><type>VkQueue</type> <name>queue</name></param>
|
||||
<param optional="true"><type>uint32_t</type> <name>bindInfoCount</name></param>
|
||||
<param len="bindInfoCount" externsync="pBindInfo[].pWaitSemaphores[],pBindInfo[].pSignalSemaphores[],pBindInfo[].pBufferBinds[].buffer,pBindInfo[].pImageOpaqueBinds[].image,pBindInfo[].pImageBinds[].image">const <type>VkBindSparseInfo</type>* <name>pBindInfo</name></param>
|
||||
<param len="bindInfoCount" externsync="pBindInfo[].pBufferBinds[].buffer,pBindInfo[].pImageOpaqueBinds[].image,pBindInfo[].pImageBinds[].image">const <type>VkBindSparseInfo</type>* <name>pBindInfo</name></param>
|
||||
<param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
|
||||
|
@ -7177,7 +7249,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
|
||||
<proto><type>void</type> <name>vkCmdBindShadingRateImageNV</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param><type>VkImageView</type> <name>imageView</name></param>
|
||||
<param optional="true"><type>VkImageView</type> <name>imageView</name></param>
|
||||
<param><type>VkImageLayout</type> <name>imageLayout</name></param>
|
||||
</command>
|
||||
<command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
|
||||
|
@ -7378,6 +7450,52 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<param optional="false,true"><type>uint32_t</type>* <name>pCombinationCount</name></param>
|
||||
<param optional="true" len="pCombinationCount"><type>VkFramebufferMixedSamplesCombinationNV</type>* <name>pCombinations</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkInitializePerformanceApiINTEL</name></proto>
|
||||
<param><type>VkDevice</type> <name>device</name></param>
|
||||
<param>const <type>VkInitializePerformanceApiInfoINTEL</type>* <name>pInitializeInfo</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
|
||||
<proto><type>void</type> <name>vkUninitializePerformanceApiINTEL</name></proto>
|
||||
<param><type>VkDevice</type> <name>device</name></param>
|
||||
</command>
|
||||
<command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkCmdSetPerformanceMarkerINTEL</name></proto>
|
||||
<param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param>const <type>VkPerformanceMarkerInfoINTEL</type>* <name>pMarkerInfo</name></param>
|
||||
</command>
|
||||
<command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkCmdSetPerformanceStreamMarkerINTEL</name></proto>
|
||||
<param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param>const <type>VkPerformanceStreamMarkerInfoINTEL</type>* <name>pMarkerInfo</name></param>
|
||||
</command>
|
||||
<command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkCmdSetPerformanceOverrideINTEL</name></proto>
|
||||
<param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param>const <type>VkPerformanceOverrideInfoINTEL</type>* <name>pOverrideInfo</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkAcquirePerformanceConfigurationINTEL</name></proto>
|
||||
<param><type>VkDevice</type> <name>device</name></param>
|
||||
<param>const <type>VkPerformanceConfigurationAcquireInfoINTEL</type>* <name>pAcquireInfo</name></param>
|
||||
<param><type>VkPerformanceConfigurationINTEL</type>* <name>pConfiguration</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkReleasePerformanceConfigurationINTEL</name></proto>
|
||||
<param><type>VkDevice</type> <name>device</name></param>
|
||||
<param><type>VkPerformanceConfigurationINTEL</type> <name>configuration</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkQueueSetPerformanceConfigurationINTEL</name></proto>
|
||||
<param><type>VkQueue</type> <name>queue</name></param>
|
||||
<param><type>VkPerformanceConfigurationINTEL</type> <name>configuration</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkGetPerformanceParameterINTEL</name></proto>
|
||||
<param><type>VkDevice</type> <name>device</name></param>
|
||||
<param><type>VkPerformanceParameterTypeINTEL</type> <name>parameter</name></param>
|
||||
<param><type>VkPerformanceValueINTEL</type>* <name>pValue</name></param>
|
||||
</command>
|
||||
</commands>
|
||||
|
||||
<feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions">
|
||||
|
@ -10396,10 +10514,41 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type name="VkPhysicalDeviceShaderIntegerFunctions2INTEL"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_INTEL_extension_211" number="211" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled">
|
||||
<extension name="VK_INTEL_performance_query" number="211" type="device" author="INTEL" contact="Lionel Landwerlin @llandwerlin" supported="vulkan">
|
||||
<require>
|
||||
<enum value="0" name="VK_KHR_EXTENSION_211_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_extension_211"" name="VK_KHR_EXTENSION_211_EXTENSION_NAME"/>
|
||||
<enum value="1" name="VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION"/>
|
||||
<enum value=""VK_INTEL_performance_query"" name="VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL"/>
|
||||
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"/>
|
||||
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"/>
|
||||
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"/>
|
||||
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"/>
|
||||
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"/>
|
||||
<enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL"/>
|
||||
<enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL"/>
|
||||
<type name="VkPerformanceConfigurationTypeINTEL"/>
|
||||
<type name="VkQueryPoolSamplingModeINTEL"/>
|
||||
<type name="VkPerformanceOverrideTypeINTEL"/>
|
||||
<type name="VkPerformanceParameterTypeINTEL"/>
|
||||
<type name="VkPerformanceValueTypeINTEL"/>
|
||||
<type name="VkPerformanceValueDataINTEL"/>
|
||||
<type name="VkPerformanceValueINTEL"/>
|
||||
<type name="VkInitializePerformanceApiInfoINTEL"/>
|
||||
<type name="VkQueryPoolCreateInfoINTEL"/>
|
||||
<type name="VkPerformanceMarkerInfoINTEL"/>
|
||||
<type name="VkPerformanceStreamMarkerInfoINTEL"/>
|
||||
<type name="VkPerformanceOverrideInfoINTEL"/>
|
||||
<type name="VkPerformanceConfigurationAcquireInfoINTEL"/>
|
||||
<type name="VkPerformanceConfigurationINTEL"/>
|
||||
<command name="vkInitializePerformanceApiINTEL"/>
|
||||
<command name="vkUninitializePerformanceApiINTEL"/>
|
||||
<command name="vkCmdSetPerformanceMarkerINTEL"/>
|
||||
<command name="vkCmdSetPerformanceStreamMarkerINTEL"/>
|
||||
<command name="vkCmdSetPerformanceOverrideINTEL"/>
|
||||
<command name="vkAcquirePerformanceConfigurationINTEL"/>
|
||||
<command name="vkReleasePerformanceConfigurationINTEL"/>
|
||||
<command name="vkQueueSetPerformanceConfigurationINTEL"/>
|
||||
<command name="vkGetPerformanceParameterINTEL"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_KHR_vulkan_memory_model" number="212" type="device" author="KHR" contact="Jeff Bolz @jeffbolznv" provisional="true" supported="vulkan">
|
||||
|
|
Loading…
Reference in New Issue