public class KHRPerformanceQuery
extends java.lang.Object
VK_KHR_performance_query extension adds a mechanism to allow querying of performance counters for use in applications and by profiling tools.
Each queue family may expose counters that can be enabled on a queue of that family. We extend VkQueryType to add a new query type for performance queries, and chain a structure on VkQueryPoolCreateInfo to specify the performance queries to enable.
The following example shows how to find what performance counters a queue family supports, setup a query pool to record these performance counters, how to add the query pool to the command buffer to record information, and how to get the results from the query pool.
// A previously created physical device
VkPhysicalDevice physicalDevice;
// One of the queue families our device supports
uint32_t queueFamilyIndex;
uint32_t counterCount;
// Get the count of counters supported
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
physicalDevice,
queueFamilyIndex,
&counterCount,
NULL,
NULL);
VkPerformanceCounterKHR* counters =
malloc(sizeof(VkPerformanceCounterKHR) * counterCount);
VkPerformanceCounterDescriptionKHR* counterDescriptions =
malloc(sizeof(VkPerformanceCounterDescriptionKHR) * counterCount);
// Get the counters supported
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
physicalDevice,
queueFamilyIndex,
&counterCount,
counters,
counterDescriptions);
// Try to enable the first 8 counters
uint32_t enabledCounters[8];
const uint32_t enabledCounterCount = min(counterCount, 8));
for (uint32_t i = 0; i < enabledCounterCount; i++) {
enabledCounters[i] = i;
}
// A previously created device that had the performanceCounterQueryPools feature
// set to VK_TRUE
VkDevice device;
VkQueryPoolPerformanceCreateInfoKHR performanceQueryCreateInfo = {
VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
NULL,
// Specify the queue family that this performance query is performed on
queueFamilyIndex,
// The number of counters to enable
enabledCounterCount,
// The array of indices of counters to enable
enabledCounters
};
// Get the number of passes our counters will require.
uint32_t numPasses;
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
physicalDevice,
&performanceQueryCreateInfo,
&numPasses);
VkQueryPoolCreateInfo queryPoolCreateInfo = {
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
&performanceQueryCreateInfo,
0,
// Using our new query type here
VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
1,
0
};
VkQueryPool queryPool;
VkResult result = vkCreateQueryPool(
device,
&queryPoolCreateInfo,
NULL,
&queryPool);
assert(VK_SUCCESS == result);
// A queue from queueFamilyIndex
VkQueue queue;
// A command buffer we want to record counters on
VkCommandBuffer commandBuffer;
VkCommandBufferBeginInfo commandBufferBeginInfo = {
VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
NULL,
0,
NULL
};
VkAcquireProfilingLockInfoKHR lockInfo = {
VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
NULL,
0,
UINT64_MAX // Wait forever for the lock
};
// Acquire the profiling lock before we record command buffers
// that will use performance queries
result = vkAcquireProfilingLockKHR(device, &lockInfo);
assert(VK_SUCCESS == result);
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);
for (uint32_t counterPass = 0; counterPass < numPasses; counterPass++) {
VkPerformanceQuerySubmitInfoKHR performanceQuerySubmitInfo = {
VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
NULL,
counterPass
};
// Submit the command buffer and wait for its completion
// ...
}
// Release the profiling lock after the command buffer is no longer in the
// pending state.
vkReleaseProfilingLockKHR(device);
result = vkResetCommandBuffer(commandBuffer, 0);
assert(VK_SUCCESS == result);
// Create an array to hold the results of all counters
VkPerformanceCounterResultKHR* recordedCounters = malloc(
sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount);
result = vkGetQueryPoolResults(
device,
queryPool,
0,
1,
sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount,
recordedCounters,
sizeof(VkPerformanceCounterResultKHR),
NULL);
// recordedCounters is filled with our counters, we'll look at one for posterity
switch (counters[0].storage) {
case VK_PERFORMANCE_COUNTER_STORAGE_INT32:
// use recordCounters[0].int32 to get at the counter result!
break;
case VK_PERFORMANCE_COUNTER_STORAGE_INT64:
// use recordCounters[0].int64 to get at the counter result!
break;
case VK_PERFORMANCE_COUNTER_STORAGE_UINT32:
// use recordCounters[0].uint32 to get at the counter result!
break;
case VK_PERFORMANCE_COUNTER_STORAGE_UINT64:
// use recordCounters[0].uint64 to get at the counter result!
break;
case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32:
// use recordCounters[0].float32 to get at the counter result!
break;
case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64:
// use recordCounters[0].float64 to get at the counter result!
break;
}
VK_KHR_performance_queryVK_KHR_get_physical_device_properties2| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME
The extension name.
|
static int |
VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION
The extension specification version.
|
static int |
VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR
VkPerformanceCounterDescriptionFlagBitsKHR - Bitmask specifying usage behavior for a counter
|
static int |
VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR
VkPerformanceCounterDescriptionFlagBitsKHR - Bitmask specifying usage behavior for a counter
|
static int |
VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR
VkPerformanceCounterStorageKHR - Supported counter storage types
|
static int |
VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
VkPerformanceCounterStorageKHR - Supported counter storage types
|
static int |
VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR
VkPerformanceCounterStorageKHR - Supported counter storage types
|
static int |
VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR
VkPerformanceCounterStorageKHR - Supported counter storage types
|
static int |
VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR
VkPerformanceCounterStorageKHR - Supported counter storage types
|
static int |
VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR
VkPerformanceCounterStorageKHR - Supported counter storage types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR
VkPerformanceCounterUnitKHR - Supported counter unit types
|
static int |
VK_QUERY_SCOPE_COMMAND_BUFFER_KHR
VkPerformanceCounterScopeKHR - Supported counter scope types
|
static int |
VK_QUERY_SCOPE_COMMAND_KHR
VkPerformanceCounterScopeKHR - Supported counter scope types
|
static int |
VK_QUERY_SCOPE_RENDER_PASS_KHR
VkPerformanceCounterScopeKHR - Supported counter scope types
|
static int |
VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR
Extends
VkQueryType. |
static int |
VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
Extends
VkStructureType. |
static int |
VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
Extends
VkStructureType. |
static int |
VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
Extends
VkStructureType. |
static int |
VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
Extends
VkStructureType. |
static int |
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
Extends
VkStructureType. |
static int |
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
Extends
VkStructureType. |
static int |
VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
Extends
VkStructureType. |
| Modifier and Type | Method and Description |
|---|---|
static int |
nvkAcquireProfilingLockKHR(org.lwjgl.vulkan.VkDevice device,
long pInfo)
Unsafe version of:
AcquireProfilingLockKHR |
static int |
nvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
int queueFamilyIndex,
long pCounterCount,
long pCounters,
long pCounterDescriptions)
Unsafe version of:
EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR |
static void |
nvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
long pPerformanceQueryCreateInfo,
long pNumPasses)
Unsafe version of:
GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR |
static int |
vkAcquireProfilingLockKHR(org.lwjgl.vulkan.VkDevice device,
VkAcquireProfilingLockInfoKHR pInfo)
Acquires the profiling lock.
|
static int |
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
int queueFamilyIndex,
int[] pCounterCount,
VkPerformanceCounterKHR.Buffer pCounters,
VkPerformanceCounterDescriptionKHR.Buffer pCounterDescriptions)
Array version of:
EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR |
static int |
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
int queueFamilyIndex,
java.nio.IntBuffer pCounterCount,
VkPerformanceCounterKHR.Buffer pCounters,
VkPerformanceCounterDescriptionKHR.Buffer pCounterDescriptions)
Reports properties of the performance query counters available on a queue family of a device.
|
static void |
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
VkQueryPoolPerformanceCreateInfoKHR pPerformanceQueryCreateInfo,
int[] pNumPasses)
Array version of:
GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR |
static void |
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
VkQueryPoolPerformanceCreateInfoKHR pPerformanceQueryCreateInfo,
java.nio.IntBuffer pNumPasses)
Reports the number of passes require for a performance query pool type.
|
static void |
vkReleaseProfilingLockKHR(org.lwjgl.vulkan.VkDevice device)
Releases the profiling lock.
|
public static final int VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION
public static final java.lang.String VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME
public static final int VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR
VkQueryType.public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
VkStructureType.
STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHRSTRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHRSTRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHRpublic static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
VkStructureType.
STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHRSTRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHRSTRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHRpublic static final int VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
VkStructureType.
STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHRSTRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHRSTRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHRpublic static final int VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
VkStructureType.
STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHRSTRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHRSTRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHRpublic static final int VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
VkStructureType.
STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHRSTRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHRSTRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHRpublic static final int VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
VkStructureType.
STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHRSTRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHRSTRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHRpublic static final int VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
VkStructureType.
STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHRSTRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHRSTRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_KHRSTRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHRpublic static final int VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - the performance counter unit is a generic data point.PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - the performance counter unit is a percentage (%).PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - the performance counter unit is a value of nanoseconds (ns).PERFORMANCE_COUNTER_UNIT_BYTES_KHR - the performance counter unit is a value of bytes.PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - the performance counter unit is a value of bytes/s.PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - the performance counter unit is a temperature reported in Kelvin.PERFORMANCE_COUNTER_UNIT_WATTS_KHR - the performance counter unit is a value of watts (W).PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - the performance counter unit is a value of volts (V).PERFORMANCE_COUNTER_UNIT_AMPS_KHR - the performance counter unit is a value of amps (A).PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - the performance counter unit is a value of hertz (Hz).PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - the performance counter unit is a value of cycles.public static final int VK_QUERY_SCOPE_COMMAND_BUFFER_KHR
QUERY_SCOPE_COMMAND_BUFFER_KHR - the performance counter scope is a single complete command buffer.QUERY_SCOPE_RENDER_PASS_KHR - the performance counter scope is zero or more complete render passes. The performance query containing the performance counter must begin and end outside a render pass instance.QUERY_SCOPE_COMMAND_KHR - the performance counter scope is zero or more commands.public static final int VK_QUERY_SCOPE_RENDER_PASS_KHR
QUERY_SCOPE_COMMAND_BUFFER_KHR - the performance counter scope is a single complete command buffer.QUERY_SCOPE_RENDER_PASS_KHR - the performance counter scope is zero or more complete render passes. The performance query containing the performance counter must begin and end outside a render pass instance.QUERY_SCOPE_COMMAND_KHR - the performance counter scope is zero or more commands.public static final int VK_QUERY_SCOPE_COMMAND_KHR
QUERY_SCOPE_COMMAND_BUFFER_KHR - the performance counter scope is a single complete command buffer.QUERY_SCOPE_RENDER_PASS_KHR - the performance counter scope is zero or more complete render passes. The performance query containing the performance counter must begin and end outside a render pass instance.QUERY_SCOPE_COMMAND_KHR - the performance counter scope is zero or more commands.public static final int VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR
PERFORMANCE_COUNTER_STORAGE_INT32_KHR - the performance counter storage is a 32-bit signed integer.PERFORMANCE_COUNTER_STORAGE_INT64_KHR - the performance counter storage is a 64-bit signed integer.PERFORMANCE_COUNTER_STORAGE_UINT32_KHR - the performance counter storage is a 32-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_UINT64_KHR - the performance counter storage is a 64-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR - the performance counter storage is a 32-bit floating-point.PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - the performance counter storage is a 64-bit floating-point.public static final int VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR
PERFORMANCE_COUNTER_STORAGE_INT32_KHR - the performance counter storage is a 32-bit signed integer.PERFORMANCE_COUNTER_STORAGE_INT64_KHR - the performance counter storage is a 64-bit signed integer.PERFORMANCE_COUNTER_STORAGE_UINT32_KHR - the performance counter storage is a 32-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_UINT64_KHR - the performance counter storage is a 64-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR - the performance counter storage is a 32-bit floating-point.PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - the performance counter storage is a 64-bit floating-point.public static final int VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR
PERFORMANCE_COUNTER_STORAGE_INT32_KHR - the performance counter storage is a 32-bit signed integer.PERFORMANCE_COUNTER_STORAGE_INT64_KHR - the performance counter storage is a 64-bit signed integer.PERFORMANCE_COUNTER_STORAGE_UINT32_KHR - the performance counter storage is a 32-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_UINT64_KHR - the performance counter storage is a 64-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR - the performance counter storage is a 32-bit floating-point.PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - the performance counter storage is a 64-bit floating-point.public static final int VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR
PERFORMANCE_COUNTER_STORAGE_INT32_KHR - the performance counter storage is a 32-bit signed integer.PERFORMANCE_COUNTER_STORAGE_INT64_KHR - the performance counter storage is a 64-bit signed integer.PERFORMANCE_COUNTER_STORAGE_UINT32_KHR - the performance counter storage is a 32-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_UINT64_KHR - the performance counter storage is a 64-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR - the performance counter storage is a 32-bit floating-point.PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - the performance counter storage is a 64-bit floating-point.public static final int VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR
PERFORMANCE_COUNTER_STORAGE_INT32_KHR - the performance counter storage is a 32-bit signed integer.PERFORMANCE_COUNTER_STORAGE_INT64_KHR - the performance counter storage is a 64-bit signed integer.PERFORMANCE_COUNTER_STORAGE_UINT32_KHR - the performance counter storage is a 32-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_UINT64_KHR - the performance counter storage is a 64-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR - the performance counter storage is a 32-bit floating-point.PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - the performance counter storage is a 64-bit floating-point.public static final int VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
PERFORMANCE_COUNTER_STORAGE_INT32_KHR - the performance counter storage is a 32-bit signed integer.PERFORMANCE_COUNTER_STORAGE_INT64_KHR - the performance counter storage is a 64-bit signed integer.PERFORMANCE_COUNTER_STORAGE_UINT32_KHR - the performance counter storage is a 32-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_UINT64_KHR - the performance counter storage is a 64-bit unsigned integer.PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR - the performance counter storage is a 32-bit floating-point.PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - the performance counter storage is a 64-bit floating-point.public static final int VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR
PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR specifies that recording the counter may have a noticable performance impact.PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR specifies that concurrently recording the counter while other submitted command buffers are running may impact the accuracy of the recording.VkPerformanceCounterDescriptionFlagsKHR
public static final int VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR
PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR specifies that recording the counter may have a noticable performance impact.PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR specifies that concurrently recording the counter while other submitted command buffers are running may impact the accuracy of the recording.VkPerformanceCounterDescriptionFlagsKHR
public static int nvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
int queueFamilyIndex,
long pCounterCount,
long pCounters,
long pCounterDescriptions)
EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRpCounterCount - a pointer to an integer related to the number of counters available or queried, as described below.public static int vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
int queueFamilyIndex,
java.nio.IntBuffer pCounterCount,
@Nullable
VkPerformanceCounterKHR.Buffer pCounters,
@Nullable
VkPerformanceCounterDescriptionKHR.Buffer pCounterDescriptions)
To enumerate the performance query counters available on a queue family of a physical device, call:
VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
VkPhysicalDevice physicalDevice,
uint32_t queueFamilyIndex,
uint32_t* pCounterCount,
VkPerformanceCounterKHR* pCounters,
VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
If pCounters is NULL and pCounterDescriptions is NULL, then the number of counters available is returned in pCounterCount. Otherwise, pCounterCount must point to a variable set by the user to the number of elements in the pCounters, pCounterDescriptions, or both arrays and on return the variable is overwritten with the number of structures actually written out. If pCounterCount is less than the number of counters available, at most pCounterCount structures will be written and INCOMPLETE will be returned instead of SUCCESS.
physicalDevice must be a valid VkPhysicalDevice handlepCounterCount must be a valid pointer to a uint32_t valuepCounterCount is not 0, and pCounters is not NULL, pCounters must be a valid pointer to an array of pCounterCount VkPerformanceCounterKHR structurespCounterCount is not 0, and pCounterDescriptions is not NULL, pCounterDescriptions must be a valid pointer to an array of pCounterCount VkPerformanceCounterDescriptionKHR structuresphysicalDevice - the handle to the physical device whose queue family performance query counter properties will be queried.queueFamilyIndex - the index into the queue family of the physical device we want to get properties for.pCounterCount - a pointer to an integer related to the number of counters available or queried, as described below.pCounters - either NULL or a pointer to an array of VkPerformanceCounterKHR structures.pCounterDescriptions - either NULL or a pointer to an array of VkPerformanceCounterDescriptionKHR structures.public static void nvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
long pPerformanceQueryCreateInfo,
long pNumPasses)
GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRpublic static void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
VkQueryPoolPerformanceCreateInfoKHR pPerformanceQueryCreateInfo,
java.nio.IntBuffer pNumPasses)
To query the number of passes required to query a performance query pool on a physical device, call:
void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
VkPhysicalDevice physicalDevice,
const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
uint32_t* pNumPasses);
The pPerformanceQueryCreateInfo member VkQueryPoolPerformanceCreateInfoKHR::queueFamilyIndex must be a queue family of physicalDevice. The number of passes required to capture the counters specified in the pPerformanceQueryCreateInfo member VkQueryPoolPerformanceCreateInfoKHR::pCounters is returned in pNumPasses.
physicalDevice must be a valid VkPhysicalDevice handlepPerformanceQueryCreateInfo must be a valid pointer to a valid VkQueryPoolPerformanceCreateInfoKHR structurepNumPasses must be a valid pointer to a uint32_t valuephysicalDevice - the handle to the physical device whose queue family performance query counter properties will be queried.pPerformanceQueryCreateInfo - a pointer to a VkQueryPoolPerformanceCreateInfoKHR of the performance query that is to be created.pNumPasses - a pointer to an integer related to the number of passes required to query the performance query pool, as described below.public static int nvkAcquireProfilingLockKHR(org.lwjgl.vulkan.VkDevice device,
long pInfo)
AcquireProfilingLockKHRpublic static int vkAcquireProfilingLockKHR(org.lwjgl.vulkan.VkDevice device,
VkAcquireProfilingLockInfoKHR pInfo)
To record and submit a command buffer that contains a performance query pool the profiling lock must be held. The profiling lock must be acquired prior to any call to BeginCommandBuffer that will be using a performance query pool. The profiling lock must be held while any command buffer that contains a performance query pool is in the recording, executable, or pending state. To acquire the profiling lock, call:
VkResult vkAcquireProfilingLockKHR(
VkDevice device,
const VkAcquireProfilingLockInfoKHR* pInfo);
Implementations may allow multiple actors to hold the profiling lock concurrently.
device must be a valid VkDevice handlepInfo must be a valid pointer to a valid VkAcquireProfilingLockInfoKHR structuredevice - the logical device to profile.pInfo - a pointer to a VkAcquireProfilingLockInfoKHR structure which contains information about how the profiling is to be acquired.public static void vkReleaseProfilingLockKHR(org.lwjgl.vulkan.VkDevice device)
To release the profiling lock, call:
void vkReleaseProfilingLockKHR(
VkDevice device);
device must have been held via a previous successful call to AcquireProfilingLockKHRdevice must be a valid VkDevice handledevice - the logical device to cease profiling on.public static int vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
int queueFamilyIndex,
int[] pCounterCount,
@Nullable
VkPerformanceCounterKHR.Buffer pCounters,
@Nullable
VkPerformanceCounterDescriptionKHR.Buffer pCounterDescriptions)
EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRpublic static void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
VkQueryPoolPerformanceCreateInfoKHR pPerformanceQueryCreateInfo,
int[] pNumPasses)
GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRCopyright LWJGL. All Rights Reserved. License terms.