Class INTELPerformanceQuery
Such a library is available at : https://github.com/intel/metrics-discovery
Performance analysis tools such as Graphics Performance Analyzers make use of this extension and the metrics-discovery library to present the data in a human readable way.
Example Code
// A previously created device
VkDevice device;
// A queue derived from the device
VkQueue queue;
VkInitializePerformanceApiInfoINTEL performanceApiInfoIntel = {
VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
NULL,
NULL
};
vkInitializePerformanceApiINTEL(
device,
&performanceApiInfoIntel);
VkQueryPoolPerformanceQueryCreateInfoINTEL 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.
- Name String
VK_INTEL_performance_query- Extension Type
- Device extension
- Registered Extension Number
- 211
- Revision
- 2
- Special Use
- Contact
- Lionel Landwerlin llandwerlin
Other Extension Metadata
- Last Modified Date
- 2018-05-16
- IP Status
- No known IP claims.
- Contributors
- Lionel Landwerlin, Intel
- Piotr Maciejewski, Intel
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe extension name.static final intThe extension specification version.static final intExtendsVkObjectType.static final intVkPerformanceConfigurationTypeINTEL - Type of performance configurationstatic final intVkPerformanceOverrideTypeINTEL - Performance override typestatic final intVkPerformanceOverrideTypeINTEL - Performance override typestatic final intVkPerformanceParameterTypeINTEL - Parameters that can be queriedstatic final intVkPerformanceParameterTypeINTEL - Parameters that can be queriedstatic final intVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedstatic final intVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedstatic final intVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedstatic final intVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedstatic final intVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedstatic final intVkQueryPoolSamplingModeINTEL - Enum specifying how performance queries should be capturedstatic final intExtendsVkQueryType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkAcquirePerformanceConfigurationINTEL(org.lwjgl.vulkan.VkDevice device, long pAcquireInfo, long pConfiguration) Unsafe version of:AcquirePerformanceConfigurationINTELstatic intnvkCmdSetPerformanceMarkerINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pMarkerInfo) Unsafe version of:CmdSetPerformanceMarkerINTELstatic intnvkCmdSetPerformanceOverrideINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pOverrideInfo) Unsafe version of:CmdSetPerformanceOverrideINTELstatic intnvkCmdSetPerformanceStreamMarkerINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pMarkerInfo) Unsafe version of:CmdSetPerformanceStreamMarkerINTELstatic intnvkGetPerformanceParameterINTEL(org.lwjgl.vulkan.VkDevice device, int parameter, long pValue) Unsafe version of:GetPerformanceParameterINTELstatic intnvkInitializePerformanceApiINTEL(org.lwjgl.vulkan.VkDevice device, long pInitializeInfo) Unsafe version of:InitializePerformanceApiINTELstatic intvkAcquirePerformanceConfigurationINTEL(org.lwjgl.vulkan.VkDevice device, VkPerformanceConfigurationAcquireInfoINTEL pAcquireInfo, long[] pConfiguration) Array version of:AcquirePerformanceConfigurationINTELstatic intvkAcquirePerformanceConfigurationINTEL(org.lwjgl.vulkan.VkDevice device, VkPerformanceConfigurationAcquireInfoINTEL pAcquireInfo, LongBuffer pConfiguration) Acquire the performance query capability.static intvkCmdSetPerformanceMarkerINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkPerformanceMarkerInfoINTEL pMarkerInfo) Markers.static intvkCmdSetPerformanceOverrideINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkPerformanceOverrideInfoINTEL pOverrideInfo) Performance override settings.static intvkCmdSetPerformanceStreamMarkerINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkPerformanceStreamMarkerInfoINTEL pMarkerInfo) Markers.static intvkGetPerformanceParameterINTEL(org.lwjgl.vulkan.VkDevice device, int parameter, VkPerformanceValueINTEL pValue) Query performance capabilities of the device.static intvkInitializePerformanceApiINTEL(org.lwjgl.vulkan.VkDevice device, VkInitializePerformanceApiInfoINTEL pInitializeInfo) Initialize a device for performance queries.static intvkQueueSetPerformanceConfigurationINTEL(org.lwjgl.vulkan.VkQueue queue, long configuration) Set a performance query.static intvkReleasePerformanceConfigurationINTEL(org.lwjgl.vulkan.VkDevice device, long configuration) Release a configuration to capture performance data.static voidvkUninitializePerformanceApiINTEL(org.lwjgl.vulkan.VkDevice device) Uninitialize a device for performance queries.
-
Field Details
-
VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION
public static final int VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
public static final int VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTELExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTELSTRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTELSTRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
- See Also:
-
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL
public static final int VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTELExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTELSTRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTELSTRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
- See Also:
-
VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
public static final int VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTELExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTELSTRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTELSTRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
- See Also:
-
VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
public static final int VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTELExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTELSTRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTELSTRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
- See Also:
-
VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
public static final int VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTELExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTELSTRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTELSTRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
- See Also:
-
VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
public static final int VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTELExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTELSTRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTELSTRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
- See Also:
-
VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
public static final int VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTELExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTELSTRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTELSTRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTELSTRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
- See Also:
-
VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
public static final int VK_QUERY_TYPE_PERFORMANCE_QUERY_INTELExtendsVkQueryType.- See Also:
-
VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL
public static final int VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTELExtendsVkObjectType.- See Also:
-
VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
public static final int VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTELVkPerformanceConfigurationTypeINTEL - Type of performance configurationSee Also
- See Also:
-
VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
public static final int VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTELVkQueryPoolSamplingModeINTEL - Enum specifying how performance queries should be capturedDescription
QUERY_POOL_SAMPLING_MODE_MANUAL_INTELis the default mode in which the application callsCmdBeginQueryandCmdEndQueryto record performance data.
See Also
- See Also:
-
VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL
public static final int VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTELVkPerformanceOverrideTypeINTEL - Performance override typeDescription
PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTELturns all rendering operations into noop.PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTELstalls the stream of commands until all previously emitted commands have completed and all caches been flushed and invalidated.
See Also
- See Also:
-
VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
public static final int VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTELVkPerformanceOverrideTypeINTEL - Performance override typeDescription
PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTELturns all rendering operations into noop.PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTELstalls the stream of commands until all previously emitted commands have completed and all caches been flushed and invalidated.
See Also
- See Also:
-
VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL
public static final int VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTELVkPerformanceParameterTypeINTEL - Parameters that can be queriedDescription
PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTELhas a boolean result which tells whether hardware counters can be captured.PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTELhas a 32 bits integer result which tells how many bits can be written into theVkPerformanceValueINTELvalue.
See Also
- See Also:
-
VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
public static final int VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTELVkPerformanceParameterTypeINTEL - Parameters that can be queriedDescription
PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTELhas a boolean result which tells whether hardware counters can be captured.PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTELhas a 32 bits integer result which tells how many bits can be written into theVkPerformanceValueINTELvalue.
See Also
- See Also:
-
VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL
public static final int VK_PERFORMANCE_VALUE_TYPE_UINT32_INTELVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedSee Also
Enum values:
- See Also:
-
VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL
public static final int VK_PERFORMANCE_VALUE_TYPE_UINT64_INTELVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedSee Also
Enum values:
- See Also:
-
VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL
public static final int VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTELVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedSee Also
Enum values:
- See Also:
-
VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL
public static final int VK_PERFORMANCE_VALUE_TYPE_BOOL_INTELVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedSee Also
Enum values:
- See Also:
-
VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
public static final int VK_PERFORMANCE_VALUE_TYPE_STRING_INTELVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedSee Also
Enum values:
- See Also:
-
-
Method Details
-
nvkInitializePerformanceApiINTEL
public static int nvkInitializePerformanceApiINTEL(org.lwjgl.vulkan.VkDevice device, long pInitializeInfo) Unsafe version of:InitializePerformanceApiINTEL -
vkInitializePerformanceApiINTEL
public static int vkInitializePerformanceApiINTEL(org.lwjgl.vulkan.VkDevice device, VkInitializePerformanceApiInfoINTEL pInitializeInfo) Initialize a device for performance queries.C Specification
Prior to creating a performance query pool, initialize the device for performance queries with the call:
VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInitializeInfomust be a valid pointer to a validVkInitializePerformanceApiInfoINTELstructure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device used for the queries.pInitializeInfo- a pointer to aVkInitializePerformanceApiInfoINTELstructure specifying initialization parameters.
-
vkUninitializePerformanceApiINTEL
public static void vkUninitializePerformanceApiINTEL(org.lwjgl.vulkan.VkDevice device) Uninitialize a device for performance queries.C Specification
Once performance query operations have completed, uninitialize the device for performance queries with the call:
void vkUninitializePerformanceApiINTEL( VkDevice device);Valid Usage (Implicit)
devicemust be a validVkDevicehandle
- Parameters:
device- the logical device used for the queries.
-
nvkCmdSetPerformanceMarkerINTEL
public static int nvkCmdSetPerformanceMarkerINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pMarkerInfo) Unsafe version of:CmdSetPerformanceMarkerINTEL -
vkCmdSetPerformanceMarkerINTEL
public static int vkCmdSetPerformanceMarkerINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkPerformanceMarkerInfoINTEL pMarkerInfo) Markers.C Specification
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:
VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);Description
The last marker set onto a command buffer before the end of a query will be part of the query result.
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepMarkerInfomust be a valid pointer to a validVkPerformanceMarkerInfoINTELstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics, compute, or transfer operations - This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Both Outside Graphics Compute Transfer Action State Return Codes
- On success, this command returns
- On failure, this command returns
See Also
-
nvkCmdSetPerformanceStreamMarkerINTEL
public static int nvkCmdSetPerformanceStreamMarkerINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pMarkerInfo) Unsafe version of:CmdSetPerformanceStreamMarkerINTEL -
vkCmdSetPerformanceStreamMarkerINTEL
public static int vkCmdSetPerformanceStreamMarkerINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkPerformanceStreamMarkerInfoINTEL pMarkerInfo) Markers.C Specification
When monitoring the behavior of an application within 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.
VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepMarkerInfomust be a valid pointer to a validVkPerformanceStreamMarkerInfoINTELstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics, compute, or transfer operations - This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Both Outside Graphics Compute Transfer Action State Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
commandBuffer- aVkCommandBufferinto which a stream marker is added.pMarkerInfo- a pointer to aVkPerformanceStreamMarkerInfoINTELstructure describing the marker to insert.
-
nvkCmdSetPerformanceOverrideINTEL
public static int nvkCmdSetPerformanceOverrideINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pOverrideInfo) Unsafe version of:CmdSetPerformanceOverrideINTEL -
vkCmdSetPerformanceOverrideINTEL
public static int vkCmdSetPerformanceOverrideINTEL(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkPerformanceOverrideInfoINTEL pOverrideInfo) Performance override settings.C Specification
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 :
VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);Valid Usage
pOverrideInfomust not be used with aVkPerformanceOverrideTypeINTELthat is not reported available byvkGetPerformanceParameterINTEL
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepOverrideInfomust be a valid pointer to a validVkPerformanceOverrideInfoINTELstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics, compute, or transfer operations - This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Both Outside Graphics Compute Transfer State Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
commandBuffer- the command buffer where the override takes place.pOverrideInfo- a pointer to aVkPerformanceOverrideInfoINTELstructure selecting the parameter to override.
-
nvkAcquirePerformanceConfigurationINTEL
public static int nvkAcquirePerformanceConfigurationINTEL(org.lwjgl.vulkan.VkDevice device, long pAcquireInfo, long pConfiguration) Unsafe version of:AcquirePerformanceConfigurationINTEL -
vkAcquirePerformanceConfigurationINTEL
public static int vkAcquirePerformanceConfigurationINTEL(org.lwjgl.vulkan.VkDevice device, VkPerformanceConfigurationAcquireInfoINTEL pAcquireInfo, LongBuffer pConfiguration) Acquire the performance query capability.C Specification
To acquire a device performance configuration, call:
VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);Valid Usage (Implicit)
devicemust be a validVkDevicehandlepAcquireInfomust be a valid pointer to a validVkPerformanceConfigurationAcquireInfoINTELstructurepConfigurationmust be a valid pointer to aVkPerformanceConfigurationINTELhandle
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that the performance query commands will be submitted to.pAcquireInfo- a pointer to aVkPerformanceConfigurationAcquireInfoINTELstructure, specifying the performance configuration to acquire.pConfiguration- a pointer to aVkPerformanceConfigurationINTELhandle in which the resulting configuration object is returned.
-
vkReleasePerformanceConfigurationINTEL
public static int vkReleasePerformanceConfigurationINTEL(org.lwjgl.vulkan.VkDevice device, long configuration) Release a configuration to capture performance data.C Specification
To release a device performance configuration, call:
VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration);Valid Usage
configurationmust not be released before all command buffers submitted while the configuration was set are in pending state
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
configurationis notNULL_HANDLE,configurationmust be a validVkPerformanceConfigurationINTELhandle - If
configurationis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
configurationmust be externally synchronized
Return Codes
- On success, this command returns
- On failure, this command returns
- Parameters:
device- the device associated to the configuration object to release.configuration- the configuration object to release.
-
vkQueueSetPerformanceConfigurationINTEL
public static int vkQueueSetPerformanceConfigurationINTEL(org.lwjgl.vulkan.VkQueue queue, long configuration) Set a performance query.C Specification
To set a performance configuration, call:
VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration);Valid Usage (Implicit)
queuemust be a validVkQueuehandleconfigurationmust be a validVkPerformanceConfigurationINTELhandle- Both of
configuration, andqueuemust have been created, allocated, or retrieved from the sameVkDevice
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type - - - Any - Return Codes
- On success, this command returns
- On failure, this command returns
- Parameters:
queue- the queue on which the configuration will be used.configuration- the configuration to use.
-
nvkGetPerformanceParameterINTEL
public static int nvkGetPerformanceParameterINTEL(org.lwjgl.vulkan.VkDevice device, int parameter, long pValue) Unsafe version of:GetPerformanceParameterINTEL -
vkGetPerformanceParameterINTEL
public static int vkGetPerformanceParameterINTEL(org.lwjgl.vulkan.VkDevice device, int parameter, VkPerformanceValueINTEL pValue) Query performance capabilities of the device.C Specification
Some performance query features of a device can be discovered with the call:
VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);Valid Usage (Implicit)
devicemust be a validVkDevicehandleparametermust be a validVkPerformanceParameterTypeINTELvaluepValuemust be a valid pointer to aVkPerformanceValueINTELstructure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device to query.parameter- the parameter to query.pValue- a pointer to aVkPerformanceValueINTELstructure in which the type and value of the parameter are returned.
-
vkAcquirePerformanceConfigurationINTEL
public static int vkAcquirePerformanceConfigurationINTEL(org.lwjgl.vulkan.VkDevice device, VkPerformanceConfigurationAcquireInfoINTEL pAcquireInfo, long[] pConfiguration) Array version of:AcquirePerformanceConfigurationINTEL
-