aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-04-15 18:21:13 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-04-16 11:13:30 -0600
commit928989197098f7facfc324f98cff6f6d419f73ed (patch)
tree72fba0336a0ef35bcfdb672806bc3581d0861ae3 /include
parentda9b10937ffc73f3fb3af250b0a57e2ea67bb63e (diff)
downloadusermoji-928989197098f7facfc324f98cff6f6d419f73ed.tar.xz
bug 13466: Allow writing query results to buffer memory
Diffstat (limited to 'include')
-rw-r--r--include/vkLayer.h1
-rw-r--r--include/vulkan.h25
2 files changed, 25 insertions, 1 deletions
diff --git a/include/vkLayer.h b/include/vkLayer.h
index c15237eb..ba2e43b7 100644
--- a/include/vkLayer.h
+++ b/include/vkLayer.h
@@ -135,6 +135,7 @@ typedef struct VkLayerDispatchTable_
PFN_vkCmdEndQuery CmdEndQuery;
PFN_vkCmdResetQueryPool CmdResetQueryPool;
PFN_vkCmdWriteTimestamp CmdWriteTimestamp;
+ PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults;
PFN_vkCmdInitAtomicCounters CmdInitAtomicCounters;
PFN_vkCmdLoadAtomicCounters CmdLoadAtomicCounters;
PFN_vkCmdSaveAtomicCounters CmdSaveAtomicCounters;
diff --git a/include/vulkan.h b/include/vulkan.h
index 2c538572..9e0fcf1c 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, 78, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 80, 0)
#ifdef __cplusplus
extern "C"
@@ -1208,6 +1208,18 @@ typedef enum VkQueryControlFlags_
VK_MAX_ENUM(VkQueryControlFlags)
} VkQueryControlFlags;
+// Query result flags
+typedef enum VkQueryResultFlags_
+{
+ VK_QUERY_RESULT_32_BIT = 0x00000000, // Results of the queries are written to the destination buffer as 32-bit values
+ VK_QUERY_RESULT_64_BIT = 0x00000001, // Results of the queries are written to the destination buffer as 64-bit values
+ // Duplicate enum result messes with validation
+// VK_QUERY_RESULT_NO_WAIT_BIT = 0x00000000, // Results of the queries aren't waited on before proceeding with the result copy
+ VK_QUERY_RESULT_WAIT_BIT = 0x00000002, // Results of the queries are waited on before proceeding with the result copy
+ VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, // Besides the results of the query, the availability of the results is also written
+ VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008 // Copy the partial results of the query even if the final results aren't available
+} VkQueryResultFlags;
+
// GPU compatibility flags
typedef enum VkGpuCompatibilityFlags_
{
@@ -2293,6 +2305,7 @@ typedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCmdBuffer cmdBuffer, VkQueryPool
typedef void (VKAPI *PFN_vkCmdEndQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot);
typedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
typedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkTimestampType timestampType, VkBuffer destBuffer, VkGpuSize destOffset);
+typedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkGpuSize destOffset, VkGpuSize destStride, VkFlags flags);
typedef void (VKAPI *PFN_vkCmdInitAtomicCounters)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, uint32_t startCounter, uint32_t counterCount, const uint32_t* pData);
typedef void (VKAPI *PFN_vkCmdLoadAtomicCounters)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, uint32_t startCounter, uint32_t counterCount, VkBuffer srcBuffer, VkGpuSize srcOffset);
typedef void (VKAPI *PFN_vkCmdSaveAtomicCounters)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, uint32_t startCounter, uint32_t counterCount, VkBuffer destBuffer, VkGpuSize destOffset);
@@ -2941,6 +2954,16 @@ void VKAPI vkCmdWriteTimestamp(
VkBuffer destBuffer,
VkGpuSize destOffset);
+void VKAPI vkCmdCopyQueryPoolResults(
+ VkCmdBuffer cmdBuffer,
+ VkQueryPool queryPool,
+ uint32_t startQuery,
+ uint32_t queryCount,
+ VkBuffer destBuffer,
+ VkGpuSize destOffset,
+ VkGpuSize destStride,
+ VkFlags flags); // VkQueryResultFlags
+
void VKAPI vkCmdInitAtomicCounters(
VkCmdBuffer cmdBuffer,
VkPipelineBindPoint pipelineBindPoint,