aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-04-16 09:13:59 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-04-17 10:12:16 -0600
commit1177965c54dfe97425dd48fd1dba62bb78557345 (patch)
treec5182ee2130bf67f9c42aa8713225fd5ef32f2d0 /include
parent39173430d71bd4d2ac967af8fc9b3a6d26318679 (diff)
downloadusermoji-1177965c54dfe97425dd48fd1dba62bb78557345.tar.xz
bug-13668: Support for pipeline statistics queries
header #84 svn: 30459 Update PipelineStatisticsQuery to gather data based on indicated statistics flags. Updated with review feedback.
Diffstat (limited to 'include')
-rw-r--r--include/vulkan.h39
1 files changed, 21 insertions, 18 deletions
diff --git a/include/vulkan.h b/include/vulkan.h
index d5ef3cbd..8d495fea 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -33,7 +33,7 @@
#include "vk_platform.h"
// Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 80, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 84, 0)
#ifdef __cplusplus
extern "C"
@@ -1137,6 +1137,23 @@ typedef enum VkCmdBufferOptimizeFlagBits_
// Memory mapping flags
typedef VkFlags VkMemoryMapFlags;
+// Pipeline statistics flags
+typedef VkFlags VkQueryPipelineStatisticFlags;
+typedef enum VkQueryPipelineStatisticFlagBits_ {
+ VK_QUERY_PIPELINE_STATISTIC_IA_VERTICES_BIT = VK_BIT(0), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_IA_PRIMITIVES_BIT = VK_BIT(1), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_VS_INVOCATIONS_BIT = VK_BIT(2), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_GS_INVOCATIONS_BIT = VK_BIT(3), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_GS_PRIMITIVES_BIT = VK_BIT(4), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_C_INVOCATIONS_BIT = VK_BIT(5), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_C_PRIMITIVES_BIT = VK_BIT(6), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_FS_INVOCATIONS_BIT = VK_BIT(7), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_TCS_PATCHES_BIT = VK_BIT(8), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_TES_INVOCATIONS_BIT = VK_BIT(9), // Optional
+ VK_QUERY_PIPELINE_STATISTIC_CS_INVOCATIONS_BIT = VK_BIT(10), // Optional
+} VkQueryPipelineStatisticFlagBits;
+
+
// ------------------------------------------------------------------------------------------------
// Vulkan structures
@@ -1999,27 +2016,13 @@ typedef struct VkSemaphoreOpenInfo_
VkSemaphore sharedSemaphore;
} VkSemaphoreOpenInfo;
-typedef struct VkPipelineStatisticsData_
-{
- uint64_t fsInvocations; // Fragment shader invocations
- uint64_t cPrimitives; // Clipper primitives
- uint64_t cInvocations; // Clipper invocations
- uint64_t vsInvocations; // Vertex shader invocations
- uint64_t gsInvocations; // Geometry shader invocations
- uint64_t gsPrimitives; // Geometry shader primitives
- uint64_t iaPrimitives; // Input primitives
- uint64_t iaVertices; // Input vertices
- uint64_t tcsInvocations; // Tessellation control shader invocations
- uint64_t tesInvocations; // Tessellation evaluation shader invocations
- uint64_t csInvocations; // Compute shader invocations
-} VkPipelineStatisticsData;
-
typedef struct VkQueryPoolCreateInfo_
{
- VkStructureType sType; // Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
- const void* pNext; // Pointer to next structure
+ VkStructureType sType; // Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
+ const void* pNext; // Pointer to next structure
VkQueryType queryType;
uint32_t slots;
+ VkQueryPipelineStatisticFlags pipelineStatistics; // Optional
} VkQueryPoolCreateInfo;
typedef struct VkFramebufferCreateInfo_