// Copyright 2019-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

[open,refpage='VkQueryPoolPerformanceCreateInfoKHR',desc='Structure specifying parameters of a newly created performance query pool',type='structs']
--
The sname:VkQueryPoolPerformanceCreateInfoKHR structure is defined as:

include::{generated}/api/structs/VkQueryPoolPerformanceCreateInfoKHR.txt[]

  * pname:sType is the type of this structure.
  * pname:pNext is `NULL` or a pointer to a structure extending this
    structure.
  * pname:queueFamilyIndex is the queue family index to create this
    performance query pool for.
  * pname:counterIndexCount is the length of the pname:pCounterIndices
    array.
  * pname:pCounterIndices is a pointer to an array of indices into the
    flink:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR::pname:pCounters
    to enable in this performance query pool.

.Valid Usage
****
  * [[VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236]]
    pname:queueFamilyIndex must: be a valid queue family index of the device
  * [[VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237]]
    The <<features-performanceCounterQueryPools,
    pname:performanceCounterQueryPools>> feature must: be enabled
  * [[VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321]]
    Each element of pname:pCounterIndices must: be in the range of counters
    reported by
    fname:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
    for the queue family specified in pname:queueFamilyIndex
****

include::{generated}/validity/structs/VkQueryPoolPerformanceCreateInfoKHR.txt[]
--

[open,refpage='vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR',desc='Reports the number of passes require for a performance query pool type',type='protos']
--
To query the number of passes required to query a performance query pool on
a physical device, call:

include::{generated}/api/protos/vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.txt[]

  * pname:physicalDevice is the handle to the physical device whose queue
    family performance query counter properties will be queried.
  * pname:pPerformanceQueryCreateInfo is a pointer to a
    sname:VkQueryPoolPerformanceCreateInfoKHR of the performance query that
    is to be created.
  * pname:pNumPasses is a pointer to an integer related to the number of
    passes required to query the performance query pool, as described below.

The pname:pPerformanceQueryCreateInfo member
sname:VkQueryPoolPerformanceCreateInfoKHR::pname:queueFamilyIndex must: be a
queue family of pname:physicalDevice.
The number of passes required to capture the counters specified in the
pname:pPerformanceQueryCreateInfo member
sname:VkQueryPoolPerformanceCreateInfoKHR::pname:pCounters is returned in
pname:pNumPasses.

include::{generated}/validity/protos/vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.txt[]
--
