diff options
| author | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-04-15 18:21:13 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-04-16 11:13:30 -0600 |
| commit | 928989197098f7facfc324f98cff6f6d419f73ed (patch) | |
| tree | 72fba0336a0ef35bcfdb672806bc3581d0861ae3 /include | |
| parent | da9b10937ffc73f3fb3af250b0a57e2ea67bb63e (diff) | |
| download | usermoji-928989197098f7facfc324f98cff6f6d419f73ed.tar.xz | |
bug 13466: Allow writing query results to buffer memory
Diffstat (limited to 'include')
| -rw-r--r-- | include/vkLayer.h | 1 | ||||
| -rw-r--r-- | include/vulkan.h | 25 |
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, |
