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

[open,refpage='VkPhysicalDevicePerformanceQueryPropertiesKHR',desc='Structure describing performance query properties for an implementation',type='structs']
--
The sname:VkPhysicalDevicePerformanceQueryPropertiesKHR structure is defined
as:

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

  * pname:sType is the type of this structure.
  * pname:pNext is `NULL` or a pointer to a structure extending this
    structure.
  * pname:allowCommandBufferQueryCopies is ename:VK_TRUE if the performance
    query pools are allowed to be used with flink:vkCmdCopyQueryPoolResults.

:refpage: VkPhysicalDevicePerformanceQueryPropertiesKHR
include::{chapters}/limits.txt[tag=limits_desc]

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