From 32556493fcafd676ec5d8fcfd3492a8c30fa0f97 Mon Sep 17 00:00:00 2001 From: Boris Zanin Date: Thu, 16 Aug 2018 10:55:01 +0200 Subject: [PATCH] Tests for VK_KHR_performance_query Add tests: * dEQP-VK.query_pool.performance_query.* Components: Vulkan VK-GL-CTS issue: 1302 Change-Id: I4d3c62dace2d259061f78d3014deb05bc4eac9d7 --- AndroidGen.mk | 1 + android/cts/master/vk-master.txt | 6 + .../vulkancts/framework/vulkan/vkBasicTypes.inl | 58 +- .../framework/vulkan/vkConcreteDeviceInterface.inl | 2 + .../vulkan/vkConcreteInstanceInterface.inl | 136 +-- .../framework/vulkan/vkDeviceDriverImpl.inl | 10 + .../framework/vulkan/vkDeviceFunctionPointers.inl | 2 + .../framework/vulkan/vkExtensionFunctions.inl | 11 + .../framework/vulkan/vkFunctionPointerTypes.inl | 608 +++++----- .../framework/vulkan/vkGetStructureTypeImpl.inl | 35 + .../vulkan/vkInitDeviceFunctionPointers.inl | 2 + .../vulkan/vkInitInstanceFunctionPointers.inl | 178 +-- .../framework/vulkan/vkInstanceDriverImpl.inl | 10 + .../vulkan/vkInstanceFunctionPointers.inl | 156 +-- .../framework/vulkan/vkNullDriverImpl.inl | 188 +-- external/vulkancts/framework/vulkan/vkStrUtil.inl | 19 + .../vulkancts/framework/vulkan/vkStrUtilImpl.inl | 168 ++- .../vulkancts/framework/vulkan/vkStructTypes.inl | 69 ++ .../framework/vulkan/vkVirtualDeviceInterface.inl | 2 + .../vulkan/vkVirtualInstanceInterface.inl | 136 +-- external/vulkancts/framework/vulkan/vkVulkan_c.inl | 151 +++ .../modules/vulkan/api/vktApiFeatureInfo.cpp | 41 +- .../modules/vulkan/query_pool/CMakeLists.txt | 2 + .../query_pool/vktQueryPoolPerformanceTests.cpp | 1198 ++++++++++++++++++++ .../query_pool/vktQueryPoolPerformanceTests.hpp | 48 + .../vulkan/query_pool/vktQueryPoolTests.cpp | 2 + external/vulkancts/modules/vulkan/vktTestCase.cpp | 18 +- external/vulkancts/modules/vulkan/vktTestCase.hpp | 2 + .../mustpass/1.1.5/vk-default-no-waivers.txt | 6 + external/vulkancts/mustpass/1.1.5/vk-default.txt | 6 + external/vulkancts/scripts/src/vulkan.h.in | 151 +++ 31 files changed, 2731 insertions(+), 691 deletions(-) create mode 100644 external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp create mode 100644 external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.hpp diff --git a/AndroidGen.mk b/AndroidGen.mk index 653c606..1045902 100644 --- a/AndroidGen.mk +++ b/AndroidGen.mk @@ -229,6 +229,7 @@ LOCAL_SRC_FILES := \ external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp \ external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemYCbCrConversionTests.cpp \ external/vulkancts/modules/vulkan/query_pool/vktQueryPoolOcclusionTests.cpp \ + external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp \ external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp \ external/vulkancts/modules/vulkan/query_pool/vktQueryPoolTests.cpp \ external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp \ diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index 3e5404e..3a38b29 100755 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -311907,6 +311907,12 @@ dEQP-VK.query_pool.statistics_query.host_query_reset.tes_control_patches.tes_con dEQP-VK.query_pool.statistics_query.host_query_reset.tes_evaluation_shader_invocations.tes_evaluation_shader_invocations dEQP-VK.query_pool.statistics_query.host_query_reset.tes_evaluation_shader_invocations.tes_evaluation_shader_invocations_secondary dEQP-VK.query_pool.statistics_query.host_query_reset.tes_evaluation_shader_invocations.tes_evaluation_shader_invocations_secondary_inherited +dEQP-VK.query_pool.performance_query.enumerate_and_validate_graphic +dEQP-VK.query_pool.performance_query.enumerate_and_validate_compute +dEQP-VK.query_pool.performance_query.query_graphic +dEQP-VK.query_pool.performance_query.query_compute +dEQP-VK.query_pool.performance_query.multiple_pools_graphic +dEQP-VK.query_pool.performance_query.multiple_pools_compute dEQP-VK.draw.simple_draw.simple_draw_triangle_list dEQP-VK.draw.simple_draw.simple_draw_triangle_strip dEQP-VK.draw.simple_draw.simple_draw_instanced_triangle_list diff --git a/external/vulkancts/framework/vulkan/vkBasicTypes.inl b/external/vulkancts/framework/vulkan/vkBasicTypes.inl index ed3b7b0..49e3a97 100644 --- a/external/vulkancts/framework/vulkan/vkBasicTypes.inl +++ b/external/vulkancts/framework/vulkan/vkBasicTypes.inl @@ -302,6 +302,13 @@ enum VkStructureType VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_FEATURES_KHR = 1000116000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_PROPERTIES_KHR = 1000116001, + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_CREATE_INFO_KHR = 1000116002, + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003, + VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, @@ -649,8 +656,7 @@ enum VkQueryType VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, - - VK_QUERY_TYPE_LAST + VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, }; enum VkSharingMode @@ -1114,6 +1120,44 @@ enum VkPresentModeKHR VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, }; +enum VkPerformanceCounterUnitKHR +{ + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0, + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1, + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2, + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3, + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4, + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5, + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6, + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7, + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8, + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9, + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10, + + VK_PERFORMANCE_COUNTER_UNIT_KHR_LAST +}; + +enum VkPerformanceCounterScopeKHR +{ + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0, + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1, + VK_QUERY_SCOPE_COMMAND_KHR = 2, + + VK_PERFORMANCE_COUNTER_SCOPE_KHR_LAST +}; + +enum VkPerformanceCounterStorageKHR +{ + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0, + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1, + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2, + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3, + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4, + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5, + + VK_PERFORMANCE_COUNTER_STORAGE_KHR_LAST +}; + enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, @@ -1813,6 +1857,13 @@ enum VkDisplayPlaneAlphaFlagBitsKHR }; typedef deUint32 VkDisplayPlaneAlphaFlagsKHR; +enum VkPerformanceCounterDescriptionFlagBitsKHR +{ + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 0x00000001, + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 0x00000002, +}; +typedef deUint32 VkPerformanceCounterDescriptionFlagsKHR; + enum VkResolveModeFlagBitsKHR { VK_RESOLVE_MODE_NONE_KHR = 0, @@ -1955,6 +2006,8 @@ typedef deUint32 VkAndroidSurfaceCreateFlagsKHR; typedef deUint32 VkWin32SurfaceCreateFlagsKHR; +typedef deUint32 VkAcquireProfilingLockFlagsKHR; + typedef deUint32 VkViSurfaceCreateFlagsNN; typedef deUint32 VkPipelineViewportSwizzleStateCreateFlagsNV; @@ -2127,6 +2180,7 @@ VK_DEFINE_PLATFORM_TYPE(RROutput, void*); #define VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 +#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1 #define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 #define VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT #define VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR VK_IMAGE_CREATE_EXTENDED_USAGE_BIT diff --git a/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl b/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl index 2278a4c..456583d 100644 --- a/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl +++ b/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl @@ -166,6 +166,8 @@ virtual VkResult importFenceWin32HandleKHR (VkDevice device, const VkImpor virtual VkResult getFenceWin32HandleKHR (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const; virtual VkResult importFenceFdKHR (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const; virtual VkResult getFenceFdKHR (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const; +virtual VkResult acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const; +virtual void releaseProfilingLockKHR (VkDevice device) const; virtual VkResult debugMarkerSetObjectTagEXT (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const; virtual VkResult debugMarkerSetObjectNameEXT (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const; virtual void cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const; diff --git a/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl b/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl index 0aeea3a..c5836ce 100644 --- a/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl +++ b/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl @@ -1,70 +1,72 @@ /* WARNING: This is auto-generated file. Do not modify, since changes will * be lost! Modify the generating script instead. */ -virtual void destroyInstance (VkInstance instance, const VkAllocationCallbacks* pAllocator) const; -virtual VkResult enumeratePhysicalDevices (VkInstance instance, deUint32* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) const; -virtual void getPhysicalDeviceFeatures (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) const; -virtual void getPhysicalDeviceFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) const; -virtual VkResult getPhysicalDeviceImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) const; -virtual void getPhysicalDeviceProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) const; -virtual void getPhysicalDeviceQueueFamilyProperties (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) const; -virtual void getPhysicalDeviceMemoryProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) const; -virtual VkResult createDevice (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) const; -virtual VkResult enumerateDeviceExtensionProperties (VkPhysicalDevice physicalDevice, const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties) const; -virtual VkResult enumerateDeviceLayerProperties (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkLayerProperties* pProperties) const; -virtual void getPhysicalDeviceSparseImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, deUint32* pPropertyCount, VkSparseImageFormatProperties* pProperties) const; -virtual VkResult enumeratePhysicalDeviceGroups (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const; -virtual void getPhysicalDeviceFeatures2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) const; -virtual void getPhysicalDeviceProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) const; -virtual void getPhysicalDeviceFormatProperties2 (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties) const; -virtual VkResult getPhysicalDeviceImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) const; -virtual void getPhysicalDeviceQueueFamilyProperties2 (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) const; -virtual void getPhysicalDeviceMemoryProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) const; -virtual void getPhysicalDeviceSparseImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties) const; -virtual void getPhysicalDeviceExternalBufferProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) const; -virtual void getPhysicalDeviceExternalFenceProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) const; -virtual void getPhysicalDeviceExternalSemaphoreProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) const; -virtual void destroySurfaceKHR (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const; -virtual VkResult getPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const; -virtual VkResult getPhysicalDeviceSurfaceCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const; -virtual VkResult getPhysicalDeviceSurfaceFormatsKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const; -virtual VkResult getPhysicalDeviceSurfacePresentModesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pPresentModeCount, VkPresentModeKHR* pPresentModes) const; -virtual VkResult getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const; -virtual VkResult getPhysicalDeviceDisplayPropertiesKHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const; -virtual VkResult getPhysicalDeviceDisplayPlanePropertiesKHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const; -virtual VkResult getDisplayPlaneSupportedDisplaysKHR (VkPhysicalDevice physicalDevice, deUint32 planeIndex, deUint32* pDisplayCount, VkDisplayKHR* pDisplays) const; -virtual VkResult getDisplayModePropertiesKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const; -virtual VkResult createDisplayModeKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const; -virtual VkResult getDisplayPlaneCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, deUint32 planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const; -virtual VkResult createDisplayPlaneSurfaceKHR (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual VkResult createXlibSurfaceKHR (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual VkBool32 getPhysicalDeviceXlibPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const; -virtual VkResult createXcbSurfaceKHR (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual VkBool32 getPhysicalDeviceXcbPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const; -virtual VkResult createWaylandSurfaceKHR (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual VkBool32 getPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::WaylandDisplayPtr display) const; -virtual VkResult createMirSurfaceKHR (VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual VkBool32 getPhysicalDeviceMirPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::MirConnectionPtr connection) const; -virtual VkResult createAndroidSurfaceKHR (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual VkResult createWin32SurfaceKHR (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual VkBool32 getPhysicalDeviceWin32PresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex) const; -virtual VkResult getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const; -virtual VkResult getPhysicalDeviceSurfaceFormats2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) const; -virtual VkResult getPhysicalDeviceDisplayProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties) const; -virtual VkResult getPhysicalDeviceDisplayPlaneProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) const; -virtual VkResult getDisplayModeProperties2KHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) const; -virtual VkResult getDisplayPlaneCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) const; -virtual VkResult createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const; -virtual void destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const; -virtual void debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const; -virtual VkResult getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const; -virtual VkResult createViSurfaceNN (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual void getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const; -virtual VkResult releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const; -virtual VkResult acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const; -virtual VkResult getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay) const; -virtual VkResult getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const; -virtual VkResult createIOSSurfaceMVK (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual VkResult createMacOSSurfaceMVK (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; -virtual void getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const; -virtual VkResult getPhysicalDeviceCooperativeMatrixPropertiesNV (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties) const; +virtual void destroyInstance (VkInstance instance, const VkAllocationCallbacks* pAllocator) const; +virtual VkResult enumeratePhysicalDevices (VkInstance instance, deUint32* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) const; +virtual void getPhysicalDeviceFeatures (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) const; +virtual void getPhysicalDeviceFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) const; +virtual VkResult getPhysicalDeviceImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) const; +virtual void getPhysicalDeviceProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) const; +virtual void getPhysicalDeviceQueueFamilyProperties (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) const; +virtual void getPhysicalDeviceMemoryProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) const; +virtual VkResult createDevice (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) const; +virtual VkResult enumerateDeviceExtensionProperties (VkPhysicalDevice physicalDevice, const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties) const; +virtual VkResult enumerateDeviceLayerProperties (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkLayerProperties* pProperties) const; +virtual void getPhysicalDeviceSparseImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, deUint32* pPropertyCount, VkSparseImageFormatProperties* pProperties) const; +virtual VkResult enumeratePhysicalDeviceGroups (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const; +virtual void getPhysicalDeviceFeatures2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) const; +virtual void getPhysicalDeviceProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) const; +virtual void getPhysicalDeviceFormatProperties2 (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties) const; +virtual VkResult getPhysicalDeviceImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) const; +virtual void getPhysicalDeviceQueueFamilyProperties2 (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) const; +virtual void getPhysicalDeviceMemoryProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) const; +virtual void getPhysicalDeviceSparseImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties) const; +virtual void getPhysicalDeviceExternalBufferProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) const; +virtual void getPhysicalDeviceExternalFenceProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) const; +virtual void getPhysicalDeviceExternalSemaphoreProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) const; +virtual void destroySurfaceKHR (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const; +virtual VkResult getPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const; +virtual VkResult getPhysicalDeviceSurfaceCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const; +virtual VkResult getPhysicalDeviceSurfaceFormatsKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const; +virtual VkResult getPhysicalDeviceSurfacePresentModesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pPresentModeCount, VkPresentModeKHR* pPresentModes) const; +virtual VkResult getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const; +virtual VkResult getPhysicalDeviceDisplayPropertiesKHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const; +virtual VkResult getPhysicalDeviceDisplayPlanePropertiesKHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const; +virtual VkResult getDisplayPlaneSupportedDisplaysKHR (VkPhysicalDevice physicalDevice, deUint32 planeIndex, deUint32* pDisplayCount, VkDisplayKHR* pDisplays) const; +virtual VkResult getDisplayModePropertiesKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const; +virtual VkResult createDisplayModeKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const; +virtual VkResult getDisplayPlaneCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, deUint32 planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const; +virtual VkResult createDisplayPlaneSurfaceKHR (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual VkResult createXlibSurfaceKHR (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual VkBool32 getPhysicalDeviceXlibPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const; +virtual VkResult createXcbSurfaceKHR (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual VkBool32 getPhysicalDeviceXcbPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const; +virtual VkResult createWaylandSurfaceKHR (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual VkBool32 getPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::WaylandDisplayPtr display) const; +virtual VkResult createMirSurfaceKHR (VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual VkBool32 getPhysicalDeviceMirPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::MirConnectionPtr connection) const; +virtual VkResult createAndroidSurfaceKHR (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual VkResult createWin32SurfaceKHR (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual VkBool32 getPhysicalDeviceWin32PresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex) const; +virtual void enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, deUint32* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) const; +virtual void getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR (VkPhysicalDevice physicalDevice, const VkPerformanceQueryCreateInfoKHR* pPerformanceQueryCreateInfo, deUint32* pNumPasses) const; +virtual VkResult getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const; +virtual VkResult getPhysicalDeviceSurfaceFormats2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) const; +virtual VkResult getPhysicalDeviceDisplayProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties) const; +virtual VkResult getPhysicalDeviceDisplayPlaneProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) const; +virtual VkResult getDisplayModeProperties2KHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) const; +virtual VkResult getDisplayPlaneCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) const; +virtual VkResult createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const; +virtual void destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const; +virtual void debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const; +virtual VkResult getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const; +virtual VkResult createViSurfaceNN (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual void getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const; +virtual VkResult releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const; +virtual VkResult acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const; +virtual VkResult getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay) const; +virtual VkResult getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const; +virtual VkResult createIOSSurfaceMVK (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual VkResult createMacOSSurfaceMVK (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const; +virtual void getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const; +virtual VkResult getPhysicalDeviceCooperativeMatrixPropertiesNV (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties) const; diff --git a/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl b/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl index 627e8a4..2bf85b8 100644 --- a/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl +++ b/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl @@ -827,6 +827,16 @@ VkResult DeviceDriver::getFenceFdKHR (VkDevice device, const VkFenceGetFdInfoKHR return m_vk.getFenceFdKHR(device, pGetFdInfo, pFd); } +VkResult DeviceDriver::acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const +{ + return m_vk.acquireProfilingLockKHR(device, pInfo); +} + +void DeviceDriver::releaseProfilingLockKHR (VkDevice device) const +{ + m_vk.releaseProfilingLockKHR(device); +} + VkResult DeviceDriver::debugMarkerSetObjectTagEXT (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const { return m_vk.debugMarkerSetObjectTagEXT(device, pTagInfo); diff --git a/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl index cbd2fee..226f175 100644 --- a/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl +++ b/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl @@ -166,6 +166,8 @@ ImportFenceWin32HandleKHRFunc importFenceWin32HandleKHR; GetFenceWin32HandleKHRFunc getFenceWin32HandleKHR; ImportFenceFdKHRFunc importFenceFdKHR; GetFenceFdKHRFunc getFenceFdKHR; +AcquireProfilingLockKHRFunc acquireProfilingLockKHR; +ReleaseProfilingLockKHRFunc releaseProfilingLockKHR; DebugMarkerSetObjectTagEXTFunc debugMarkerSetObjectTagEXT; DebugMarkerSetObjectNameEXTFunc debugMarkerSetObjectNameEXT; CmdDebugMarkerBeginEXTFunc cmdDebugMarkerBeginEXT; diff --git a/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl b/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl index 6a9a18e..0f5143f 100644 --- a/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl +++ b/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl @@ -69,6 +69,11 @@ void getInstanceExtensionFunctions (::std::string extName, ::std::vector VkStructureType getStructureType (void) return VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR; } +template<> VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_FEATURES_KHR; +} + +template<> VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_PROPERTIES_KHR; +} + +template<> VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR; +} + +template<> VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR; +} + +template<> VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_CREATE_INFO_KHR; +} + +template<> VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR; +} + +template<> VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR; +} + template<> VkStructureType getStructureType (void) { return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR; diff --git a/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl index 5d6ac14..2b665be 100644 --- a/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl +++ b/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl @@ -196,6 +196,8 @@ m_vk.importFenceWin32HandleKHR = (ImportFenceWin32HandleKHRFunc) GET_PRO m_vk.getFenceWin32HandleKHR = (GetFenceWin32HandleKHRFunc) GET_PROC_ADDR("vkGetFenceWin32HandleKHR"); m_vk.importFenceFdKHR = (ImportFenceFdKHRFunc) GET_PROC_ADDR("vkImportFenceFdKHR"); m_vk.getFenceFdKHR = (GetFenceFdKHRFunc) GET_PROC_ADDR("vkGetFenceFdKHR"); +m_vk.acquireProfilingLockKHR = (AcquireProfilingLockKHRFunc) GET_PROC_ADDR("vkAcquireProfilingLockKHR"); +m_vk.releaseProfilingLockKHR = (ReleaseProfilingLockKHRFunc) GET_PROC_ADDR("vkReleaseProfilingLockKHR"); m_vk.debugMarkerSetObjectTagEXT = (DebugMarkerSetObjectTagEXTFunc) GET_PROC_ADDR("vkDebugMarkerSetObjectTagEXT"); m_vk.debugMarkerSetObjectNameEXT = (DebugMarkerSetObjectNameEXTFunc) GET_PROC_ADDR("vkDebugMarkerSetObjectNameEXT"); m_vk.cmdDebugMarkerBeginEXT = (CmdDebugMarkerBeginEXTFunc) GET_PROC_ADDR("vkCmdDebugMarkerBeginEXT"); diff --git a/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl index 4fdc000..e2cba8d 100644 --- a/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl +++ b/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl @@ -1,102 +1,104 @@ /* WARNING: This is auto-generated file. Do not modify, since changes will * be lost! Modify the generating script instead. */ -m_vk.destroyInstance = (DestroyInstanceFunc) GET_PROC_ADDR("vkDestroyInstance"); -m_vk.enumeratePhysicalDevices = (EnumeratePhysicalDevicesFunc) GET_PROC_ADDR("vkEnumeratePhysicalDevices"); -m_vk.getPhysicalDeviceFeatures = (GetPhysicalDeviceFeaturesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceFeatures"); -m_vk.getPhysicalDeviceFormatProperties = (GetPhysicalDeviceFormatPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties"); -m_vk.getPhysicalDeviceImageFormatProperties = (GetPhysicalDeviceImageFormatPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties"); -m_vk.getPhysicalDeviceProperties = (GetPhysicalDevicePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceProperties"); -m_vk.getPhysicalDeviceQueueFamilyProperties = (GetPhysicalDeviceQueueFamilyPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties"); -m_vk.getPhysicalDeviceMemoryProperties = (GetPhysicalDeviceMemoryPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties"); -m_vk.createDevice = (CreateDeviceFunc) GET_PROC_ADDR("vkCreateDevice"); -m_vk.enumerateDeviceExtensionProperties = (EnumerateDeviceExtensionPropertiesFunc) GET_PROC_ADDR("vkEnumerateDeviceExtensionProperties"); -m_vk.enumerateDeviceLayerProperties = (EnumerateDeviceLayerPropertiesFunc) GET_PROC_ADDR("vkEnumerateDeviceLayerProperties"); -m_vk.getPhysicalDeviceSparseImageFormatProperties = (GetPhysicalDeviceSparseImageFormatPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties"); -m_vk.enumeratePhysicalDeviceGroups = (EnumeratePhysicalDeviceGroupsFunc) GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroups"); +m_vk.destroyInstance = (DestroyInstanceFunc) GET_PROC_ADDR("vkDestroyInstance"); +m_vk.enumeratePhysicalDevices = (EnumeratePhysicalDevicesFunc) GET_PROC_ADDR("vkEnumeratePhysicalDevices"); +m_vk.getPhysicalDeviceFeatures = (GetPhysicalDeviceFeaturesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceFeatures"); +m_vk.getPhysicalDeviceFormatProperties = (GetPhysicalDeviceFormatPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties"); +m_vk.getPhysicalDeviceImageFormatProperties = (GetPhysicalDeviceImageFormatPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties"); +m_vk.getPhysicalDeviceProperties = (GetPhysicalDevicePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceProperties"); +m_vk.getPhysicalDeviceQueueFamilyProperties = (GetPhysicalDeviceQueueFamilyPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties"); +m_vk.getPhysicalDeviceMemoryProperties = (GetPhysicalDeviceMemoryPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties"); +m_vk.createDevice = (CreateDeviceFunc) GET_PROC_ADDR("vkCreateDevice"); +m_vk.enumerateDeviceExtensionProperties = (EnumerateDeviceExtensionPropertiesFunc) GET_PROC_ADDR("vkEnumerateDeviceExtensionProperties"); +m_vk.enumerateDeviceLayerProperties = (EnumerateDeviceLayerPropertiesFunc) GET_PROC_ADDR("vkEnumerateDeviceLayerProperties"); +m_vk.getPhysicalDeviceSparseImageFormatProperties = (GetPhysicalDeviceSparseImageFormatPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties"); +m_vk.enumeratePhysicalDeviceGroups = (EnumeratePhysicalDeviceGroupsFunc) GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroups"); if (!m_vk.enumeratePhysicalDeviceGroups) - m_vk.enumeratePhysicalDeviceGroups = (EnumeratePhysicalDeviceGroupsFunc) GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroupsKHR"); -m_vk.getPhysicalDeviceFeatures2 = (GetPhysicalDeviceFeatures2Func) GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2"); + m_vk.enumeratePhysicalDeviceGroups = (EnumeratePhysicalDeviceGroupsFunc) GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroupsKHR"); +m_vk.getPhysicalDeviceFeatures2 = (GetPhysicalDeviceFeatures2Func) GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2"); if (!m_vk.getPhysicalDeviceFeatures2) - m_vk.getPhysicalDeviceFeatures2 = (GetPhysicalDeviceFeatures2Func) GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2KHR"); -m_vk.getPhysicalDeviceProperties2 = (GetPhysicalDeviceProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceProperties2"); + m_vk.getPhysicalDeviceFeatures2 = (GetPhysicalDeviceFeatures2Func) GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2KHR"); +m_vk.getPhysicalDeviceProperties2 = (GetPhysicalDeviceProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceProperties2"); if (!m_vk.getPhysicalDeviceProperties2) - m_vk.getPhysicalDeviceProperties2 = (GetPhysicalDeviceProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceProperties2KHR"); -m_vk.getPhysicalDeviceFormatProperties2 = (GetPhysicalDeviceFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2"); + m_vk.getPhysicalDeviceProperties2 = (GetPhysicalDeviceProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceProperties2KHR"); +m_vk.getPhysicalDeviceFormatProperties2 = (GetPhysicalDeviceFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2"); if (!m_vk.getPhysicalDeviceFormatProperties2) - m_vk.getPhysicalDeviceFormatProperties2 = (GetPhysicalDeviceFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2KHR"); -m_vk.getPhysicalDeviceImageFormatProperties2 = (GetPhysicalDeviceImageFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2"); + m_vk.getPhysicalDeviceFormatProperties2 = (GetPhysicalDeviceFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2KHR"); +m_vk.getPhysicalDeviceImageFormatProperties2 = (GetPhysicalDeviceImageFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2"); if (!m_vk.getPhysicalDeviceImageFormatProperties2) - m_vk.getPhysicalDeviceImageFormatProperties2 = (GetPhysicalDeviceImageFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2KHR"); -m_vk.getPhysicalDeviceQueueFamilyProperties2 = (GetPhysicalDeviceQueueFamilyProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2"); + m_vk.getPhysicalDeviceImageFormatProperties2 = (GetPhysicalDeviceImageFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2KHR"); +m_vk.getPhysicalDeviceQueueFamilyProperties2 = (GetPhysicalDeviceQueueFamilyProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2"); if (!m_vk.getPhysicalDeviceQueueFamilyProperties2) - m_vk.getPhysicalDeviceQueueFamilyProperties2 = (GetPhysicalDeviceQueueFamilyProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2KHR"); -m_vk.getPhysicalDeviceMemoryProperties2 = (GetPhysicalDeviceMemoryProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2"); + m_vk.getPhysicalDeviceQueueFamilyProperties2 = (GetPhysicalDeviceQueueFamilyProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2KHR"); +m_vk.getPhysicalDeviceMemoryProperties2 = (GetPhysicalDeviceMemoryProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2"); if (!m_vk.getPhysicalDeviceMemoryProperties2) - m_vk.getPhysicalDeviceMemoryProperties2 = (GetPhysicalDeviceMemoryProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2KHR"); -m_vk.getPhysicalDeviceSparseImageFormatProperties2 = (GetPhysicalDeviceSparseImageFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2"); + m_vk.getPhysicalDeviceMemoryProperties2 = (GetPhysicalDeviceMemoryProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2KHR"); +m_vk.getPhysicalDeviceSparseImageFormatProperties2 = (GetPhysicalDeviceSparseImageFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2"); if (!m_vk.getPhysicalDeviceSparseImageFormatProperties2) - m_vk.getPhysicalDeviceSparseImageFormatProperties2 = (GetPhysicalDeviceSparseImageFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); -m_vk.getPhysicalDeviceExternalBufferProperties = (GetPhysicalDeviceExternalBufferPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferProperties"); + m_vk.getPhysicalDeviceSparseImageFormatProperties2 = (GetPhysicalDeviceSparseImageFormatProperties2Func) GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); +m_vk.getPhysicalDeviceExternalBufferProperties = (GetPhysicalDeviceExternalBufferPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferProperties"); if (!m_vk.getPhysicalDeviceExternalBufferProperties) - m_vk.getPhysicalDeviceExternalBufferProperties = (GetPhysicalDeviceExternalBufferPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferPropertiesKHR"); -m_vk.getPhysicalDeviceExternalFenceProperties = (GetPhysicalDeviceExternalFencePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalFenceProperties"); + m_vk.getPhysicalDeviceExternalBufferProperties = (GetPhysicalDeviceExternalBufferPropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferPropertiesKHR"); +m_vk.getPhysicalDeviceExternalFenceProperties = (GetPhysicalDeviceExternalFencePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalFenceProperties"); if (!m_vk.getPhysicalDeviceExternalFenceProperties) - m_vk.getPhysicalDeviceExternalFenceProperties = (GetPhysicalDeviceExternalFencePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalFencePropertiesKHR"); -m_vk.getPhysicalDeviceExternalSemaphoreProperties = (GetPhysicalDeviceExternalSemaphorePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphoreProperties"); + m_vk.getPhysicalDeviceExternalFenceProperties = (GetPhysicalDeviceExternalFencePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalFencePropertiesKHR"); +m_vk.getPhysicalDeviceExternalSemaphoreProperties = (GetPhysicalDeviceExternalSemaphorePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphoreProperties"); if (!m_vk.getPhysicalDeviceExternalSemaphoreProperties) - m_vk.getPhysicalDeviceExternalSemaphoreProperties = (GetPhysicalDeviceExternalSemaphorePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); -m_vk.destroySurfaceKHR = (DestroySurfaceKHRFunc) GET_PROC_ADDR("vkDestroySurfaceKHR"); -m_vk.getPhysicalDeviceSurfaceSupportKHR = (GetPhysicalDeviceSurfaceSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceSupportKHR"); -m_vk.getPhysicalDeviceSurfaceCapabilitiesKHR = (GetPhysicalDeviceSurfaceCapabilitiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); -m_vk.getPhysicalDeviceSurfaceFormatsKHR = (GetPhysicalDeviceSurfaceFormatsKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceFormatsKHR"); -m_vk.getPhysicalDeviceSurfacePresentModesKHR = (GetPhysicalDeviceSurfacePresentModesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfacePresentModesKHR"); -m_vk.getPhysicalDevicePresentRectanglesKHR = (GetPhysicalDevicePresentRectanglesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDevicePresentRectanglesKHR"); -m_vk.getPhysicalDeviceDisplayPropertiesKHR = (GetPhysicalDeviceDisplayPropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPropertiesKHR"); -m_vk.getPhysicalDeviceDisplayPlanePropertiesKHR = (GetPhysicalDeviceDisplayPlanePropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPlanePropertiesKHR"); -m_vk.getDisplayPlaneSupportedDisplaysKHR = (GetDisplayPlaneSupportedDisplaysKHRFunc) GET_PROC_ADDR("vkGetDisplayPlaneSupportedDisplaysKHR"); -m_vk.getDisplayModePropertiesKHR = (GetDisplayModePropertiesKHRFunc) GET_PROC_ADDR("vkGetDisplayModePropertiesKHR"); -m_vk.createDisplayModeKHR = (CreateDisplayModeKHRFunc) GET_PROC_ADDR("vkCreateDisplayModeKHR"); -m_vk.getDisplayPlaneCapabilitiesKHR = (GetDisplayPlaneCapabilitiesKHRFunc) GET_PROC_ADDR("vkGetDisplayPlaneCapabilitiesKHR"); -m_vk.createDisplayPlaneSurfaceKHR = (CreateDisplayPlaneSurfaceKHRFunc) GET_PROC_ADDR("vkCreateDisplayPlaneSurfaceKHR"); -m_vk.createXlibSurfaceKHR = (CreateXlibSurfaceKHRFunc) GET_PROC_ADDR("vkCreateXlibSurfaceKHR"); -m_vk.getPhysicalDeviceXlibPresentationSupportKHR = (GetPhysicalDeviceXlibPresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceXlibPresentationSupportKHR"); -m_vk.createXcbSurfaceKHR = (CreateXcbSurfaceKHRFunc) GET_PROC_ADDR("vkCreateXcbSurfaceKHR"); -m_vk.getPhysicalDeviceXcbPresentationSupportKHR = (GetPhysicalDeviceXcbPresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceXcbPresentationSupportKHR"); -m_vk.createWaylandSurfaceKHR = (CreateWaylandSurfaceKHRFunc) GET_PROC_ADDR("vkCreateWaylandSurfaceKHR"); -m_vk.getPhysicalDeviceWaylandPresentationSupportKHR = (GetPhysicalDeviceWaylandPresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceWaylandPresentationSupportKHR"); -m_vk.createMirSurfaceKHR = (CreateMirSurfaceKHRFunc) GET_PROC_ADDR("vkCreateMirSurfaceKHR"); -m_vk.getPhysicalDeviceMirPresentationSupportKHR = (GetPhysicalDeviceMirPresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceMirPresentationSupportKHR"); -m_vk.createAndroidSurfaceKHR = (CreateAndroidSurfaceKHRFunc) GET_PROC_ADDR("vkCreateAndroidSurfaceKHR"); -m_vk.createWin32SurfaceKHR = (CreateWin32SurfaceKHRFunc) GET_PROC_ADDR("vkCreateWin32SurfaceKHR"); -m_vk.getPhysicalDeviceWin32PresentationSupportKHR = (GetPhysicalDeviceWin32PresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceWin32PresentationSupportKHR"); -m_vk.getPhysicalDeviceFeatures2KHR = (GetPhysicalDeviceFeatures2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2KHR"); -m_vk.getPhysicalDeviceFormatProperties2KHR = (GetPhysicalDeviceFormatProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2KHR"); -m_vk.getPhysicalDeviceImageFormatProperties2KHR = (GetPhysicalDeviceImageFormatProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2KHR"); -m_vk.getPhysicalDeviceMemoryProperties2KHR = (GetPhysicalDeviceMemoryProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2KHR"); -m_vk.getPhysicalDeviceProperties2KHR = (GetPhysicalDeviceProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceProperties2KHR"); -m_vk.getPhysicalDeviceQueueFamilyProperties2KHR = (GetPhysicalDeviceQueueFamilyProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2KHR"); -m_vk.getPhysicalDeviceSparseImageFormatProperties2KHR = (GetPhysicalDeviceSparseImageFormatProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); -m_vk.getPhysicalDeviceExternalBufferPropertiesKHR = (GetPhysicalDeviceExternalBufferPropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferPropertiesKHR"); -m_vk.getPhysicalDeviceExternalSemaphorePropertiesKHR = (GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); -m_vk.getPhysicalDeviceExternalFencePropertiesKHR = (GetPhysicalDeviceExternalFencePropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalFencePropertiesKHR"); -m_vk.getPhysicalDeviceSurfaceCapabilities2KHR = (GetPhysicalDeviceSurfaceCapabilities2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2KHR"); -m_vk.getPhysicalDeviceSurfaceFormats2KHR = (GetPhysicalDeviceSurfaceFormats2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceFormats2KHR"); -m_vk.getPhysicalDeviceDisplayProperties2KHR = (GetPhysicalDeviceDisplayProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceDisplayProperties2KHR"); -m_vk.getPhysicalDeviceDisplayPlaneProperties2KHR = (GetPhysicalDeviceDisplayPlaneProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPlaneProperties2KHR"); -m_vk.getDisplayModeProperties2KHR = (GetDisplayModeProperties2KHRFunc) GET_PROC_ADDR("vkGetDisplayModeProperties2KHR"); -m_vk.getDisplayPlaneCapabilities2KHR = (GetDisplayPlaneCapabilities2KHRFunc) GET_PROC_ADDR("vkGetDisplayPlaneCapabilities2KHR"); -m_vk.createDebugReportCallbackEXT = (CreateDebugReportCallbackEXTFunc) GET_PROC_ADDR("vkCreateDebugReportCallbackEXT"); -m_vk.destroyDebugReportCallbackEXT = (DestroyDebugReportCallbackEXTFunc) GET_PROC_ADDR("vkDestroyDebugReportCallbackEXT"); -m_vk.debugReportMessageEXT = (DebugReportMessageEXTFunc) GET_PROC_ADDR("vkDebugReportMessageEXT"); -m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV = (GetPhysicalDeviceExternalImageFormatPropertiesNVFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalImageFormatPropertiesNV"); -m_vk.createViSurfaceNN = (CreateViSurfaceNNFunc) GET_PROC_ADDR("vkCreateViSurfaceNN"); -m_vk.getPhysicalDeviceGeneratedCommandsPropertiesNVX = (GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc) GET_PROC_ADDR("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"); -m_vk.releaseDisplayEXT = (ReleaseDisplayEXTFunc) GET_PROC_ADDR("vkReleaseDisplayEXT"); -m_vk.acquireXlibDisplayEXT = (AcquireXlibDisplayEXTFunc) GET_PROC_ADDR("vkAcquireXlibDisplayEXT"); -m_vk.getRandROutputDisplayEXT = (GetRandROutputDisplayEXTFunc) GET_PROC_ADDR("vkGetRandROutputDisplayEXT"); -m_vk.getPhysicalDeviceSurfaceCapabilities2EXT = (GetPhysicalDeviceSurfaceCapabilities2EXTFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2EXT"); -m_vk.createIOSSurfaceMVK = (CreateIOSSurfaceMVKFunc) GET_PROC_ADDR("vkCreateIOSSurfaceMVK"); -m_vk.createMacOSSurfaceMVK = (CreateMacOSSurfaceMVKFunc) GET_PROC_ADDR("vkCreateMacOSSurfaceMVK"); -m_vk.getPhysicalDeviceMultisamplePropertiesEXT = (GetPhysicalDeviceMultisamplePropertiesEXTFunc) GET_PROC_ADDR("vkGetPhysicalDeviceMultisamplePropertiesEXT"); -m_vk.getPhysicalDeviceCooperativeMatrixPropertiesNV = (GetPhysicalDeviceCooperativeMatrixPropertiesNVFunc) GET_PROC_ADDR("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"); + m_vk.getPhysicalDeviceExternalSemaphoreProperties = (GetPhysicalDeviceExternalSemaphorePropertiesFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); +m_vk.destroySurfaceKHR = (DestroySurfaceKHRFunc) GET_PROC_ADDR("vkDestroySurfaceKHR"); +m_vk.getPhysicalDeviceSurfaceSupportKHR = (GetPhysicalDeviceSurfaceSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceSupportKHR"); +m_vk.getPhysicalDeviceSurfaceCapabilitiesKHR = (GetPhysicalDeviceSurfaceCapabilitiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); +m_vk.getPhysicalDeviceSurfaceFormatsKHR = (GetPhysicalDeviceSurfaceFormatsKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceFormatsKHR"); +m_vk.getPhysicalDeviceSurfacePresentModesKHR = (GetPhysicalDeviceSurfacePresentModesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfacePresentModesKHR"); +m_vk.getPhysicalDevicePresentRectanglesKHR = (GetPhysicalDevicePresentRectanglesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDevicePresentRectanglesKHR"); +m_vk.getPhysicalDeviceDisplayPropertiesKHR = (GetPhysicalDeviceDisplayPropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPropertiesKHR"); +m_vk.getPhysicalDeviceDisplayPlanePropertiesKHR = (GetPhysicalDeviceDisplayPlanePropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPlanePropertiesKHR"); +m_vk.getDisplayPlaneSupportedDisplaysKHR = (GetDisplayPlaneSupportedDisplaysKHRFunc) GET_PROC_ADDR("vkGetDisplayPlaneSupportedDisplaysKHR"); +m_vk.getDisplayModePropertiesKHR = (GetDisplayModePropertiesKHRFunc) GET_PROC_ADDR("vkGetDisplayModePropertiesKHR"); +m_vk.createDisplayModeKHR = (CreateDisplayModeKHRFunc) GET_PROC_ADDR("vkCreateDisplayModeKHR"); +m_vk.getDisplayPlaneCapabilitiesKHR = (GetDisplayPlaneCapabilitiesKHRFunc) GET_PROC_ADDR("vkGetDisplayPlaneCapabilitiesKHR"); +m_vk.createDisplayPlaneSurfaceKHR = (CreateDisplayPlaneSurfaceKHRFunc) GET_PROC_ADDR("vkCreateDisplayPlaneSurfaceKHR"); +m_vk.createXlibSurfaceKHR = (CreateXlibSurfaceKHRFunc) GET_PROC_ADDR("vkCreateXlibSurfaceKHR"); +m_vk.getPhysicalDeviceXlibPresentationSupportKHR = (GetPhysicalDeviceXlibPresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceXlibPresentationSupportKHR"); +m_vk.createXcbSurfaceKHR = (CreateXcbSurfaceKHRFunc) GET_PROC_ADDR("vkCreateXcbSurfaceKHR"); +m_vk.getPhysicalDeviceXcbPresentationSupportKHR = (GetPhysicalDeviceXcbPresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceXcbPresentationSupportKHR"); +m_vk.createWaylandSurfaceKHR = (CreateWaylandSurfaceKHRFunc) GET_PROC_ADDR("vkCreateWaylandSurfaceKHR"); +m_vk.getPhysicalDeviceWaylandPresentationSupportKHR = (GetPhysicalDeviceWaylandPresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceWaylandPresentationSupportKHR"); +m_vk.createMirSurfaceKHR = (CreateMirSurfaceKHRFunc) GET_PROC_ADDR("vkCreateMirSurfaceKHR"); +m_vk.getPhysicalDeviceMirPresentationSupportKHR = (GetPhysicalDeviceMirPresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceMirPresentationSupportKHR"); +m_vk.createAndroidSurfaceKHR = (CreateAndroidSurfaceKHRFunc) GET_PROC_ADDR("vkCreateAndroidSurfaceKHR"); +m_vk.createWin32SurfaceKHR = (CreateWin32SurfaceKHRFunc) GET_PROC_ADDR("vkCreateWin32SurfaceKHR"); +m_vk.getPhysicalDeviceWin32PresentationSupportKHR = (GetPhysicalDeviceWin32PresentationSupportKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceWin32PresentationSupportKHR"); +m_vk.getPhysicalDeviceFeatures2KHR = (GetPhysicalDeviceFeatures2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2KHR"); +m_vk.getPhysicalDeviceFormatProperties2KHR = (GetPhysicalDeviceFormatProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2KHR"); +m_vk.getPhysicalDeviceImageFormatProperties2KHR = (GetPhysicalDeviceImageFormatProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2KHR"); +m_vk.getPhysicalDeviceMemoryProperties2KHR = (GetPhysicalDeviceMemoryProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2KHR"); +m_vk.getPhysicalDeviceProperties2KHR = (GetPhysicalDeviceProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceProperties2KHR"); +m_vk.getPhysicalDeviceQueueFamilyProperties2KHR = (GetPhysicalDeviceQueueFamilyProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2KHR"); +m_vk.getPhysicalDeviceSparseImageFormatProperties2KHR = (GetPhysicalDeviceSparseImageFormatProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); +m_vk.getPhysicalDeviceExternalBufferPropertiesKHR = (GetPhysicalDeviceExternalBufferPropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferPropertiesKHR"); +m_vk.getPhysicalDeviceExternalSemaphorePropertiesKHR = (GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); +m_vk.getPhysicalDeviceExternalFencePropertiesKHR = (GetPhysicalDeviceExternalFencePropertiesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalFencePropertiesKHR"); +m_vk.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRFunc) GET_PROC_ADDR("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"); +m_vk.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"); +m_vk.getPhysicalDeviceSurfaceCapabilities2KHR = (GetPhysicalDeviceSurfaceCapabilities2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2KHR"); +m_vk.getPhysicalDeviceSurfaceFormats2KHR = (GetPhysicalDeviceSurfaceFormats2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceFormats2KHR"); +m_vk.getPhysicalDeviceDisplayProperties2KHR = (GetPhysicalDeviceDisplayProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceDisplayProperties2KHR"); +m_vk.getPhysicalDeviceDisplayPlaneProperties2KHR = (GetPhysicalDeviceDisplayPlaneProperties2KHRFunc) GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPlaneProperties2KHR"); +m_vk.getDisplayModeProperties2KHR = (GetDisplayModeProperties2KHRFunc) GET_PROC_ADDR("vkGetDisplayModeProperties2KHR"); +m_vk.getDisplayPlaneCapabilities2KHR = (GetDisplayPlaneCapabilities2KHRFunc) GET_PROC_ADDR("vkGetDisplayPlaneCapabilities2KHR"); +m_vk.createDebugReportCallbackEXT = (CreateDebugReportCallbackEXTFunc) GET_PROC_ADDR("vkCreateDebugReportCallbackEXT"); +m_vk.destroyDebugReportCallbackEXT = (DestroyDebugReportCallbackEXTFunc) GET_PROC_ADDR("vkDestroyDebugReportCallbackEXT"); +m_vk.debugReportMessageEXT = (DebugReportMessageEXTFunc) GET_PROC_ADDR("vkDebugReportMessageEXT"); +m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV = (GetPhysicalDeviceExternalImageFormatPropertiesNVFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalImageFormatPropertiesNV"); +m_vk.createViSurfaceNN = (CreateViSurfaceNNFunc) GET_PROC_ADDR("vkCreateViSurfaceNN"); +m_vk.getPhysicalDeviceGeneratedCommandsPropertiesNVX = (GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc) GET_PROC_ADDR("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"); +m_vk.releaseDisplayEXT = (ReleaseDisplayEXTFunc) GET_PROC_ADDR("vkReleaseDisplayEXT"); +m_vk.acquireXlibDisplayEXT = (AcquireXlibDisplayEXTFunc) GET_PROC_ADDR("vkAcquireXlibDisplayEXT"); +m_vk.getRandROutputDisplayEXT = (GetRandROutputDisplayEXTFunc) GET_PROC_ADDR("vkGetRandROutputDisplayEXT"); +m_vk.getPhysicalDeviceSurfaceCapabilities2EXT = (GetPhysicalDeviceSurfaceCapabilities2EXTFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2EXT"); +m_vk.createIOSSurfaceMVK = (CreateIOSSurfaceMVKFunc) GET_PROC_ADDR("vkCreateIOSSurfaceMVK"); +m_vk.createMacOSSurfaceMVK = (CreateMacOSSurfaceMVKFunc) GET_PROC_ADDR("vkCreateMacOSSurfaceMVK"); +m_vk.getPhysicalDeviceMultisamplePropertiesEXT = (GetPhysicalDeviceMultisamplePropertiesEXTFunc) GET_PROC_ADDR("vkGetPhysicalDeviceMultisamplePropertiesEXT"); +m_vk.getPhysicalDeviceCooperativeMatrixPropertiesNV = (GetPhysicalDeviceCooperativeMatrixPropertiesNVFunc) GET_PROC_ADDR("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"); diff --git a/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl b/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl index b610e32..db464b5 100644 --- a/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl +++ b/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl @@ -287,6 +287,16 @@ VkBool32 InstanceDriver::getPhysicalDeviceWin32PresentationSupportKHR (VkPhysica return m_vk.getPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex); } +void InstanceDriver::enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, deUint32* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) const +{ + m_vk.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions); +} + +void InstanceDriver::getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR (VkPhysicalDevice physicalDevice, const VkPerformanceQueryCreateInfoKHR* pPerformanceQueryCreateInfo, deUint32* pNumPasses) const +{ + m_vk.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses); +} + VkResult InstanceDriver::getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const { return m_vk.getPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities); diff --git a/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl index 8b1c4e1..b0812ca 100644 --- a/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl +++ b/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl @@ -1,80 +1,82 @@ /* WARNING: This is auto-generated file. Do not modify, since changes will * be lost! Modify the generating script instead. */ -DestroyInstanceFunc destroyInstance; -EnumeratePhysicalDevicesFunc enumeratePhysicalDevices; -GetPhysicalDeviceFeaturesFunc getPhysicalDeviceFeatures; -GetPhysicalDeviceFormatPropertiesFunc getPhysicalDeviceFormatProperties; -GetPhysicalDeviceImageFormatPropertiesFunc getPhysicalDeviceImageFormatProperties; -GetPhysicalDevicePropertiesFunc getPhysicalDeviceProperties; -GetPhysicalDeviceQueueFamilyPropertiesFunc getPhysicalDeviceQueueFamilyProperties; -GetPhysicalDeviceMemoryPropertiesFunc getPhysicalDeviceMemoryProperties; -CreateDeviceFunc createDevice; -EnumerateDeviceExtensionPropertiesFunc enumerateDeviceExtensionProperties; -EnumerateDeviceLayerPropertiesFunc enumerateDeviceLayerProperties; -GetPhysicalDeviceSparseImageFormatPropertiesFunc getPhysicalDeviceSparseImageFormatProperties; -EnumeratePhysicalDeviceGroupsFunc enumeratePhysicalDeviceGroups; -GetPhysicalDeviceFeatures2Func getPhysicalDeviceFeatures2; -GetPhysicalDeviceProperties2Func getPhysicalDeviceProperties2; -GetPhysicalDeviceFormatProperties2Func getPhysicalDeviceFormatProperties2; -GetPhysicalDeviceImageFormatProperties2Func getPhysicalDeviceImageFormatProperties2; -GetPhysicalDeviceQueueFamilyProperties2Func getPhysicalDeviceQueueFamilyProperties2; -GetPhysicalDeviceMemoryProperties2Func getPhysicalDeviceMemoryProperties2; -GetPhysicalDeviceSparseImageFormatProperties2Func getPhysicalDeviceSparseImageFormatProperties2; -GetPhysicalDeviceExternalBufferPropertiesFunc getPhysicalDeviceExternalBufferProperties; -GetPhysicalDeviceExternalFencePropertiesFunc getPhysicalDeviceExternalFenceProperties; -GetPhysicalDeviceExternalSemaphorePropertiesFunc getPhysicalDeviceExternalSemaphoreProperties; -DestroySurfaceKHRFunc destroySurfaceKHR; -GetPhysicalDeviceSurfaceSupportKHRFunc getPhysicalDeviceSurfaceSupportKHR; -GetPhysicalDeviceSurfaceCapabilitiesKHRFunc getPhysicalDeviceSurfaceCapabilitiesKHR; -GetPhysicalDeviceSurfaceFormatsKHRFunc getPhysicalDeviceSurfaceFormatsKHR; -GetPhysicalDeviceSurfacePresentModesKHRFunc getPhysicalDeviceSurfacePresentModesKHR; -GetPhysicalDevicePresentRectanglesKHRFunc getPhysicalDevicePresentRectanglesKHR; -GetPhysicalDeviceDisplayPropertiesKHRFunc getPhysicalDeviceDisplayPropertiesKHR; -GetPhysicalDeviceDisplayPlanePropertiesKHRFunc getPhysicalDeviceDisplayPlanePropertiesKHR; -GetDisplayPlaneSupportedDisplaysKHRFunc getDisplayPlaneSupportedDisplaysKHR; -GetDisplayModePropertiesKHRFunc getDisplayModePropertiesKHR; -CreateDisplayModeKHRFunc createDisplayModeKHR; -GetDisplayPlaneCapabilitiesKHRFunc getDisplayPlaneCapabilitiesKHR; -CreateDisplayPlaneSurfaceKHRFunc createDisplayPlaneSurfaceKHR; -CreateXlibSurfaceKHRFunc createXlibSurfaceKHR; -GetPhysicalDeviceXlibPresentationSupportKHRFunc getPhysicalDeviceXlibPresentationSupportKHR; -CreateXcbSurfaceKHRFunc createXcbSurfaceKHR; -GetPhysicalDeviceXcbPresentationSupportKHRFunc getPhysicalDeviceXcbPresentationSupportKHR; -CreateWaylandSurfaceKHRFunc createWaylandSurfaceKHR; -GetPhysicalDeviceWaylandPresentationSupportKHRFunc getPhysicalDeviceWaylandPresentationSupportKHR; -CreateMirSurfaceKHRFunc createMirSurfaceKHR; -GetPhysicalDeviceMirPresentationSupportKHRFunc getPhysicalDeviceMirPresentationSupportKHR; -CreateAndroidSurfaceKHRFunc createAndroidSurfaceKHR; -CreateWin32SurfaceKHRFunc createWin32SurfaceKHR; -GetPhysicalDeviceWin32PresentationSupportKHRFunc getPhysicalDeviceWin32PresentationSupportKHR; -GetPhysicalDeviceFeatures2KHRFunc getPhysicalDeviceFeatures2KHR; -GetPhysicalDeviceFormatProperties2KHRFunc getPhysicalDeviceFormatProperties2KHR; -GetPhysicalDeviceImageFormatProperties2KHRFunc getPhysicalDeviceImageFormatProperties2KHR; -GetPhysicalDeviceMemoryProperties2KHRFunc getPhysicalDeviceMemoryProperties2KHR; -GetPhysicalDeviceProperties2KHRFunc getPhysicalDeviceProperties2KHR; -GetPhysicalDeviceQueueFamilyProperties2KHRFunc getPhysicalDeviceQueueFamilyProperties2KHR; -GetPhysicalDeviceSparseImageFormatProperties2KHRFunc getPhysicalDeviceSparseImageFormatProperties2KHR; -GetPhysicalDeviceExternalBufferPropertiesKHRFunc getPhysicalDeviceExternalBufferPropertiesKHR; -GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc getPhysicalDeviceExternalSemaphorePropertiesKHR; -GetPhysicalDeviceExternalFencePropertiesKHRFunc getPhysicalDeviceExternalFencePropertiesKHR; -GetPhysicalDeviceSurfaceCapabilities2KHRFunc getPhysicalDeviceSurfaceCapabilities2KHR; -GetPhysicalDeviceSurfaceFormats2KHRFunc getPhysicalDeviceSurfaceFormats2KHR; -GetPhysicalDeviceDisplayProperties2KHRFunc getPhysicalDeviceDisplayProperties2KHR; -GetPhysicalDeviceDisplayPlaneProperties2KHRFunc getPhysicalDeviceDisplayPlaneProperties2KHR; -GetDisplayModeProperties2KHRFunc getDisplayModeProperties2KHR; -GetDisplayPlaneCapabilities2KHRFunc getDisplayPlaneCapabilities2KHR; -CreateDebugReportCallbackEXTFunc createDebugReportCallbackEXT; -DestroyDebugReportCallbackEXTFunc destroyDebugReportCallbackEXT; -DebugReportMessageEXTFunc debugReportMessageEXT; -GetPhysicalDeviceExternalImageFormatPropertiesNVFunc getPhysicalDeviceExternalImageFormatPropertiesNV; -CreateViSurfaceNNFunc createViSurfaceNN; -GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc getPhysicalDeviceGeneratedCommandsPropertiesNVX; -ReleaseDisplayEXTFunc releaseDisplayEXT; -AcquireXlibDisplayEXTFunc acquireXlibDisplayEXT; -GetRandROutputDisplayEXTFunc getRandROutputDisplayEXT; -GetPhysicalDeviceSurfaceCapabilities2EXTFunc getPhysicalDeviceSurfaceCapabilities2EXT; -CreateIOSSurfaceMVKFunc createIOSSurfaceMVK; -CreateMacOSSurfaceMVKFunc createMacOSSurfaceMVK; -GetPhysicalDeviceMultisamplePropertiesEXTFunc getPhysicalDeviceMultisamplePropertiesEXT; -GetPhysicalDeviceCooperativeMatrixPropertiesNVFunc getPhysicalDeviceCooperativeMatrixPropertiesNV; +DestroyInstanceFunc destroyInstance; +EnumeratePhysicalDevicesFunc enumeratePhysicalDevices; +GetPhysicalDeviceFeaturesFunc getPhysicalDeviceFeatures; +GetPhysicalDeviceFormatPropertiesFunc getPhysicalDeviceFormatProperties; +GetPhysicalDeviceImageFormatPropertiesFunc getPhysicalDeviceImageFormatProperties; +GetPhysicalDevicePropertiesFunc getPhysicalDeviceProperties; +GetPhysicalDeviceQueueFamilyPropertiesFunc getPhysicalDeviceQueueFamilyProperties; +GetPhysicalDeviceMemoryPropertiesFunc getPhysicalDeviceMemoryProperties; +CreateDeviceFunc createDevice; +EnumerateDeviceExtensionPropertiesFunc enumerateDeviceExtensionProperties; +EnumerateDeviceLayerPropertiesFunc enumerateDeviceLayerProperties; +GetPhysicalDeviceSparseImageFormatPropertiesFunc getPhysicalDeviceSparseImageFormatProperties; +EnumeratePhysicalDeviceGroupsFunc enumeratePhysicalDeviceGroups; +GetPhysicalDeviceFeatures2Func getPhysicalDeviceFeatures2; +GetPhysicalDeviceProperties2Func getPhysicalDeviceProperties2; +GetPhysicalDeviceFormatProperties2Func getPhysicalDeviceFormatProperties2; +GetPhysicalDeviceImageFormatProperties2Func getPhysicalDeviceImageFormatProperties2; +GetPhysicalDeviceQueueFamilyProperties2Func getPhysicalDeviceQueueFamilyProperties2; +GetPhysicalDeviceMemoryProperties2Func getPhysicalDeviceMemoryProperties2; +GetPhysicalDeviceSparseImageFormatProperties2Func getPhysicalDeviceSparseImageFormatProperties2; +GetPhysicalDeviceExternalBufferPropertiesFunc getPhysicalDeviceExternalBufferProperties; +GetPhysicalDeviceExternalFencePropertiesFunc getPhysicalDeviceExternalFenceProperties; +GetPhysicalDeviceExternalSemaphorePropertiesFunc getPhysicalDeviceExternalSemaphoreProperties; +DestroySurfaceKHRFunc destroySurfaceKHR; +GetPhysicalDeviceSurfaceSupportKHRFunc getPhysicalDeviceSurfaceSupportKHR; +GetPhysicalDeviceSurfaceCapabilitiesKHRFunc getPhysicalDeviceSurfaceCapabilitiesKHR; +GetPhysicalDeviceSurfaceFormatsKHRFunc getPhysicalDeviceSurfaceFormatsKHR; +GetPhysicalDeviceSurfacePresentModesKHRFunc getPhysicalDeviceSurfacePresentModesKHR; +GetPhysicalDevicePresentRectanglesKHRFunc getPhysicalDevicePresentRectanglesKHR; +GetPhysicalDeviceDisplayPropertiesKHRFunc getPhysicalDeviceDisplayPropertiesKHR; +GetPhysicalDeviceDisplayPlanePropertiesKHRFunc getPhysicalDeviceDisplayPlanePropertiesKHR; +GetDisplayPlaneSupportedDisplaysKHRFunc getDisplayPlaneSupportedDisplaysKHR; +GetDisplayModePropertiesKHRFunc getDisplayModePropertiesKHR; +CreateDisplayModeKHRFunc createDisplayModeKHR; +GetDisplayPlaneCapabilitiesKHRFunc getDisplayPlaneCapabilitiesKHR; +CreateDisplayPlaneSurfaceKHRFunc createDisplayPlaneSurfaceKHR; +CreateXlibSurfaceKHRFunc createXlibSurfaceKHR; +GetPhysicalDeviceXlibPresentationSupportKHRFunc getPhysicalDeviceXlibPresentationSupportKHR; +CreateXcbSurfaceKHRFunc createXcbSurfaceKHR; +GetPhysicalDeviceXcbPresentationSupportKHRFunc getPhysicalDeviceXcbPresentationSupportKHR; +CreateWaylandSurfaceKHRFunc createWaylandSurfaceKHR; +GetPhysicalDeviceWaylandPresentationSupportKHRFunc getPhysicalDeviceWaylandPresentationSupportKHR; +CreateMirSurfaceKHRFunc createMirSurfaceKHR; +GetPhysicalDeviceMirPresentationSupportKHRFunc getPhysicalDeviceMirPresentationSupportKHR; +CreateAndroidSurfaceKHRFunc createAndroidSurfaceKHR; +CreateWin32SurfaceKHRFunc createWin32SurfaceKHR; +GetPhysicalDeviceWin32PresentationSupportKHRFunc getPhysicalDeviceWin32PresentationSupportKHR; +GetPhysicalDeviceFeatures2KHRFunc getPhysicalDeviceFeatures2KHR; +GetPhysicalDeviceFormatProperties2KHRFunc getPhysicalDeviceFormatProperties2KHR; +GetPhysicalDeviceImageFormatProperties2KHRFunc getPhysicalDeviceImageFormatProperties2KHR; +GetPhysicalDeviceMemoryProperties2KHRFunc getPhysicalDeviceMemoryProperties2KHR; +GetPhysicalDeviceProperties2KHRFunc getPhysicalDeviceProperties2KHR; +GetPhysicalDeviceQueueFamilyProperties2KHRFunc getPhysicalDeviceQueueFamilyProperties2KHR; +GetPhysicalDeviceSparseImageFormatProperties2KHRFunc getPhysicalDeviceSparseImageFormatProperties2KHR; +GetPhysicalDeviceExternalBufferPropertiesKHRFunc getPhysicalDeviceExternalBufferPropertiesKHR; +GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc getPhysicalDeviceExternalSemaphorePropertiesKHR; +GetPhysicalDeviceExternalFencePropertiesKHRFunc getPhysicalDeviceExternalFencePropertiesKHR; +EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRFunc enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR; +GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRFunc getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR; +GetPhysicalDeviceSurfaceCapabilities2KHRFunc getPhysicalDeviceSurfaceCapabilities2KHR; +GetPhysicalDeviceSurfaceFormats2KHRFunc getPhysicalDeviceSurfaceFormats2KHR; +GetPhysicalDeviceDisplayProperties2KHRFunc getPhysicalDeviceDisplayProperties2KHR; +GetPhysicalDeviceDisplayPlaneProperties2KHRFunc getPhysicalDeviceDisplayPlaneProperties2KHR; +GetDisplayModeProperties2KHRFunc getDisplayModeProperties2KHR; +GetDisplayPlaneCapabilities2KHRFunc getDisplayPlaneCapabilities2KHR; +CreateDebugReportCallbackEXTFunc createDebugReportCallbackEXT; +DestroyDebugReportCallbackEXTFunc destroyDebugReportCallbackEXT; +DebugReportMessageEXTFunc debugReportMessageEXT; +GetPhysicalDeviceExternalImageFormatPropertiesNVFunc getPhysicalDeviceExternalImageFormatPropertiesNV; +CreateViSurfaceNNFunc createViSurfaceNN; +GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc getPhysicalDeviceGeneratedCommandsPropertiesNVX; +ReleaseDisplayEXTFunc releaseDisplayEXT; +AcquireXlibDisplayEXTFunc acquireXlibDisplayEXT; +GetRandROutputDisplayEXTFunc getRandROutputDisplayEXT; +GetPhysicalDeviceSurfaceCapabilities2EXTFunc getPhysicalDeviceSurfaceCapabilities2EXT; +CreateIOSSurfaceMVKFunc createIOSSurfaceMVK; +CreateMacOSSurfaceMVKFunc createMacOSSurfaceMVK; +GetPhysicalDeviceMultisamplePropertiesEXTFunc getPhysicalDeviceMultisamplePropertiesEXT; +GetPhysicalDeviceCooperativeMatrixPropertiesNVFunc getPhysicalDeviceCooperativeMatrixPropertiesNV; diff --git a/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl b/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl index a4297a8..a1d55cc 100644 --- a/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl +++ b/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl @@ -1507,6 +1507,34 @@ VKAPI_ATTR VkResult VKAPI_CALL getFenceFdKHR (VkDevice device, const VkFenceGetF return VK_SUCCESS; } +VKAPI_ATTR void VKAPI_CALL enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, deUint32* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) +{ + DE_UNREF(physicalDevice); + DE_UNREF(queueFamilyIndex); + DE_UNREF(pCounterCount); + DE_UNREF(pCounters); + DE_UNREF(pCounterDescriptions); +} + +VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR (VkPhysicalDevice physicalDevice, const VkPerformanceQueryCreateInfoKHR* pPerformanceQueryCreateInfo, deUint32* pNumPasses) +{ + DE_UNREF(physicalDevice); + DE_UNREF(pPerformanceQueryCreateInfo); + DE_UNREF(pNumPasses); +} + +VKAPI_ATTR VkResult VKAPI_CALL acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) +{ + DE_UNREF(device); + DE_UNREF(pInfo); + return VK_SUCCESS; +} + +VKAPI_ATTR void VKAPI_CALL releaseProfilingLockKHR (VkDevice device) +{ + DE_UNREF(device); +} + VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) { DE_UNREF(physicalDevice); @@ -1907,84 +1935,86 @@ static const tcu::StaticFunctionLibrary::Entry s_platformFunctions[] = static const tcu::StaticFunctionLibrary::Entry s_instanceFunctions[] = { - VK_NULL_FUNC_ENTRY(vkDestroyInstance, destroyInstance), - VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDevices, enumeratePhysicalDevices), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures, getPhysicalDeviceFeatures), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties, getPhysicalDeviceFormatProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties, getPhysicalDeviceImageFormatProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties, getPhysicalDeviceProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties, getPhysicalDeviceQueueFamilyProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties, getPhysicalDeviceMemoryProperties), - VK_NULL_FUNC_ENTRY(vkCreateDevice, createDevice), - VK_NULL_FUNC_ENTRY(vkEnumerateDeviceExtensionProperties, enumerateDeviceExtensionProperties), - VK_NULL_FUNC_ENTRY(vkEnumerateDeviceLayerProperties, enumerateDeviceLayerProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties, getPhysicalDeviceSparseImageFormatProperties), - VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroups, enumeratePhysicalDeviceGroups), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2, getPhysicalDeviceFeatures2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2, getPhysicalDeviceProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2, getPhysicalDeviceFormatProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2, getPhysicalDeviceImageFormatProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2, getPhysicalDeviceQueueFamilyProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2, getPhysicalDeviceMemoryProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2, getPhysicalDeviceSparseImageFormatProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferProperties, getPhysicalDeviceExternalBufferProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFenceProperties, getPhysicalDeviceExternalFenceProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphoreProperties, getPhysicalDeviceExternalSemaphoreProperties), - VK_NULL_FUNC_ENTRY(vkDestroySurfaceKHR, destroySurfaceKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceSupportKHR, getPhysicalDeviceSurfaceSupportKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilitiesKHR, getPhysicalDeviceSurfaceCapabilitiesKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormatsKHR, getPhysicalDeviceSurfaceFormatsKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfacePresentModesKHR, getPhysicalDeviceSurfacePresentModesKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDevicePresentRectanglesKHR, getPhysicalDevicePresentRectanglesKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPropertiesKHR, getPhysicalDeviceDisplayPropertiesKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPlanePropertiesKHR, getPhysicalDeviceDisplayPlanePropertiesKHR), - VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneSupportedDisplaysKHR, getDisplayPlaneSupportedDisplaysKHR), - VK_NULL_FUNC_ENTRY(vkGetDisplayModePropertiesKHR, getDisplayModePropertiesKHR), - VK_NULL_FUNC_ENTRY(vkCreateDisplayModeKHR, createDisplayModeKHR), - VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneCapabilitiesKHR, getDisplayPlaneCapabilitiesKHR), - VK_NULL_FUNC_ENTRY(vkCreateDisplayPlaneSurfaceKHR, createDisplayPlaneSurfaceKHR), - VK_NULL_FUNC_ENTRY(vkCreateXlibSurfaceKHR, createXlibSurfaceKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXlibPresentationSupportKHR, getPhysicalDeviceXlibPresentationSupportKHR), - VK_NULL_FUNC_ENTRY(vkCreateXcbSurfaceKHR, createXcbSurfaceKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXcbPresentationSupportKHR, getPhysicalDeviceXcbPresentationSupportKHR), - VK_NULL_FUNC_ENTRY(vkCreateWaylandSurfaceKHR, createWaylandSurfaceKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWaylandPresentationSupportKHR, getPhysicalDeviceWaylandPresentationSupportKHR), - VK_NULL_FUNC_ENTRY(vkCreateMirSurfaceKHR, createMirSurfaceKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMirPresentationSupportKHR, getPhysicalDeviceMirPresentationSupportKHR), - VK_NULL_FUNC_ENTRY(vkCreateAndroidSurfaceKHR, createAndroidSurfaceKHR), - VK_NULL_FUNC_ENTRY(vkCreateWin32SurfaceKHR, createWin32SurfaceKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWin32PresentationSupportKHR, getPhysicalDeviceWin32PresentationSupportKHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2KHR, getPhysicalDeviceFeatures2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2KHR, getPhysicalDeviceFormatProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2KHR, getPhysicalDeviceImageFormatProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2KHR, getPhysicalDeviceMemoryProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2KHR, getPhysicalDeviceProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2KHR, getPhysicalDeviceQueueFamilyProperties2), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2KHR, getPhysicalDeviceSparseImageFormatProperties2), - VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroupsKHR, enumeratePhysicalDeviceGroups), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferPropertiesKHR, getPhysicalDeviceExternalBufferProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, getPhysicalDeviceExternalSemaphoreProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFencePropertiesKHR, getPhysicalDeviceExternalFenceProperties), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2KHR, getPhysicalDeviceSurfaceCapabilities2KHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormats2KHR, getPhysicalDeviceSurfaceFormats2KHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayProperties2KHR, getPhysicalDeviceDisplayProperties2KHR), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPlaneProperties2KHR, getPhysicalDeviceDisplayPlaneProperties2KHR), - VK_NULL_FUNC_ENTRY(vkGetDisplayModeProperties2KHR, getDisplayModeProperties2KHR), - VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneCapabilities2KHR, getDisplayPlaneCapabilities2KHR), - VK_NULL_FUNC_ENTRY(vkCreateDebugReportCallbackEXT, createDebugReportCallbackEXT), - VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT, destroyDebugReportCallbackEXT), - VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT, debugReportMessageEXT), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalImageFormatPropertiesNV, getPhysicalDeviceExternalImageFormatPropertiesNV), - VK_NULL_FUNC_ENTRY(vkCreateViSurfaceNN, createViSurfaceNN), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, getPhysicalDeviceGeneratedCommandsPropertiesNVX), - VK_NULL_FUNC_ENTRY(vkReleaseDisplayEXT, releaseDisplayEXT), - VK_NULL_FUNC_ENTRY(vkAcquireXlibDisplayEXT, acquireXlibDisplayEXT), - VK_NULL_FUNC_ENTRY(vkGetRandROutputDisplayEXT, getRandROutputDisplayEXT), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2EXT, getPhysicalDeviceSurfaceCapabilities2EXT), - VK_NULL_FUNC_ENTRY(vkCreateIOSSurfaceMVK, createIOSSurfaceMVK), - VK_NULL_FUNC_ENTRY(vkCreateMacOSSurfaceMVK, createMacOSSurfaceMVK), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMultisamplePropertiesEXT, getPhysicalDeviceMultisamplePropertiesEXT), - VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, getPhysicalDeviceCooperativeMatrixPropertiesNV), + VK_NULL_FUNC_ENTRY(vkDestroyInstance, destroyInstance), + VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDevices, enumeratePhysicalDevices), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures, getPhysicalDeviceFeatures), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties, getPhysicalDeviceFormatProperties), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties, getPhysicalDeviceImageFormatProperties), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties, getPhysicalDeviceProperties), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties, getPhysicalDeviceQueueFamilyProperties), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties, getPhysicalDeviceMemoryProperties), + VK_NULL_FUNC_ENTRY(vkCreateDevice, createDevice), + VK_NULL_FUNC_ENTRY(vkEnumerateDeviceExtensionProperties, enumerateDeviceExtensionProperties), + VK_NULL_FUNC_ENTRY(vkEnumerateDeviceLayerProperties, enumerateDeviceLayerProperties), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties, getPhysicalDeviceSparseImageFormatProperties), + VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroups, enumeratePhysicalDeviceGroups), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2, getPhysicalDeviceFeatures2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2, getPhysicalDeviceProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2, getPhysicalDeviceFormatProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2, getPhysicalDeviceImageFormatProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2, getPhysicalDeviceQueueFamilyProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2, getPhysicalDeviceMemoryProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2, getPhysicalDeviceSparseImageFormatProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferProperties, getPhysicalDeviceExternalBufferProperties), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFenceProperties, getPhysicalDeviceExternalFenceProperties), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphoreProperties, getPhysicalDeviceExternalSemaphoreProperties), + VK_NULL_FUNC_ENTRY(vkDestroySurfaceKHR, destroySurfaceKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceSupportKHR, getPhysicalDeviceSurfaceSupportKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilitiesKHR, getPhysicalDeviceSurfaceCapabilitiesKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormatsKHR, getPhysicalDeviceSurfaceFormatsKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfacePresentModesKHR, getPhysicalDeviceSurfacePresentModesKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDevicePresentRectanglesKHR, getPhysicalDevicePresentRectanglesKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPropertiesKHR, getPhysicalDeviceDisplayPropertiesKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPlanePropertiesKHR, getPhysicalDeviceDisplayPlanePropertiesKHR), + VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneSupportedDisplaysKHR, getDisplayPlaneSupportedDisplaysKHR), + VK_NULL_FUNC_ENTRY(vkGetDisplayModePropertiesKHR, getDisplayModePropertiesKHR), + VK_NULL_FUNC_ENTRY(vkCreateDisplayModeKHR, createDisplayModeKHR), + VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneCapabilitiesKHR, getDisplayPlaneCapabilitiesKHR), + VK_NULL_FUNC_ENTRY(vkCreateDisplayPlaneSurfaceKHR, createDisplayPlaneSurfaceKHR), + VK_NULL_FUNC_ENTRY(vkCreateXlibSurfaceKHR, createXlibSurfaceKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXlibPresentationSupportKHR, getPhysicalDeviceXlibPresentationSupportKHR), + VK_NULL_FUNC_ENTRY(vkCreateXcbSurfaceKHR, createXcbSurfaceKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXcbPresentationSupportKHR, getPhysicalDeviceXcbPresentationSupportKHR), + VK_NULL_FUNC_ENTRY(vkCreateWaylandSurfaceKHR, createWaylandSurfaceKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWaylandPresentationSupportKHR, getPhysicalDeviceWaylandPresentationSupportKHR), + VK_NULL_FUNC_ENTRY(vkCreateMirSurfaceKHR, createMirSurfaceKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMirPresentationSupportKHR, getPhysicalDeviceMirPresentationSupportKHR), + VK_NULL_FUNC_ENTRY(vkCreateAndroidSurfaceKHR, createAndroidSurfaceKHR), + VK_NULL_FUNC_ENTRY(vkCreateWin32SurfaceKHR, createWin32SurfaceKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWin32PresentationSupportKHR, getPhysicalDeviceWin32PresentationSupportKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2KHR, getPhysicalDeviceFeatures2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2KHR, getPhysicalDeviceFormatProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2KHR, getPhysicalDeviceImageFormatProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2KHR, getPhysicalDeviceMemoryProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2KHR, getPhysicalDeviceProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2KHR, getPhysicalDeviceQueueFamilyProperties2), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2KHR, getPhysicalDeviceSparseImageFormatProperties2), + VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroupsKHR, enumeratePhysicalDeviceGroups), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferPropertiesKHR, getPhysicalDeviceExternalBufferProperties), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, getPhysicalDeviceExternalSemaphoreProperties), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFencePropertiesKHR, getPhysicalDeviceExternalFenceProperties), + VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2KHR, getPhysicalDeviceSurfaceCapabilities2KHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormats2KHR, getPhysicalDeviceSurfaceFormats2KHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayProperties2KHR, getPhysicalDeviceDisplayProperties2KHR), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPlaneProperties2KHR, getPhysicalDeviceDisplayPlaneProperties2KHR), + VK_NULL_FUNC_ENTRY(vkGetDisplayModeProperties2KHR, getDisplayModeProperties2KHR), + VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneCapabilities2KHR, getDisplayPlaneCapabilities2KHR), + VK_NULL_FUNC_ENTRY(vkCreateDebugReportCallbackEXT, createDebugReportCallbackEXT), + VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT, destroyDebugReportCallbackEXT), + VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT, debugReportMessageEXT), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalImageFormatPropertiesNV, getPhysicalDeviceExternalImageFormatPropertiesNV), + VK_NULL_FUNC_ENTRY(vkCreateViSurfaceNN, createViSurfaceNN), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, getPhysicalDeviceGeneratedCommandsPropertiesNVX), + VK_NULL_FUNC_ENTRY(vkReleaseDisplayEXT, releaseDisplayEXT), + VK_NULL_FUNC_ENTRY(vkAcquireXlibDisplayEXT, acquireXlibDisplayEXT), + VK_NULL_FUNC_ENTRY(vkGetRandROutputDisplayEXT, getRandROutputDisplayEXT), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2EXT, getPhysicalDeviceSurfaceCapabilities2EXT), + VK_NULL_FUNC_ENTRY(vkCreateIOSSurfaceMVK, createIOSSurfaceMVK), + VK_NULL_FUNC_ENTRY(vkCreateMacOSSurfaceMVK, createMacOSSurfaceMVK), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMultisamplePropertiesEXT, getPhysicalDeviceMultisamplePropertiesEXT), + VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, getPhysicalDeviceCooperativeMatrixPropertiesNV), }; static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] = @@ -2161,6 +2191,8 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] = VK_NULL_FUNC_ENTRY(vkGetFenceWin32HandleKHR, getFenceWin32HandleKHR), VK_NULL_FUNC_ENTRY(vkImportFenceFdKHR, importFenceFdKHR), VK_NULL_FUNC_ENTRY(vkGetFenceFdKHR, getFenceFdKHR), + VK_NULL_FUNC_ENTRY(vkAcquireProfilingLockKHR, acquireProfilingLockKHR), + VK_NULL_FUNC_ENTRY(vkReleaseProfilingLockKHR, releaseProfilingLockKHR), VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements2KHR, getBufferMemoryRequirements2), VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements2KHR, getImageMemoryRequirements2), VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements2KHR, getImageSparseMemoryRequirements2), diff --git a/external/vulkancts/framework/vulkan/vkStrUtil.inl b/external/vulkancts/framework/vulkan/vkStrUtil.inl index 99b581e..49b6a8a 100644 --- a/external/vulkancts/framework/vulkan/vkStrUtil.inl +++ b/external/vulkancts/framework/vulkan/vkStrUtil.inl @@ -45,6 +45,9 @@ const char* getChromaLocationName (VkChromaLocation value); const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value); const char* getColorSpaceKHRName (VkColorSpaceKHR value); const char* getPresentModeKHRName (VkPresentModeKHR value); +const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value); +const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value); +const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value); const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value); const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value); const char* getValidationCheckEXTName (VkValidationCheckEXT value); @@ -106,6 +109,9 @@ inline tcu::Format::Enum getChromaLocationStr (VkChrom inline tcu::Format::Enum getDescriptorUpdateTemplateTypeStr (VkDescriptorUpdateTemplateType value) { return tcu::Format::Enum(getDescriptorUpdateTemplateTypeName, value); } inline tcu::Format::Enum getColorSpaceKHRStr (VkColorSpaceKHR value) { return tcu::Format::Enum(getColorSpaceKHRName, value); } inline tcu::Format::Enum getPresentModeKHRStr (VkPresentModeKHR value) { return tcu::Format::Enum(getPresentModeKHRName, value); } +inline tcu::Format::Enum getPerformanceCounterUnitKHRStr (VkPerformanceCounterUnitKHR value) { return tcu::Format::Enum(getPerformanceCounterUnitKHRName, value); } +inline tcu::Format::Enum getPerformanceCounterScopeKHRStr (VkPerformanceCounterScopeKHR value) { return tcu::Format::Enum(getPerformanceCounterScopeKHRName, value); } +inline tcu::Format::Enum getPerformanceCounterStorageKHRStr (VkPerformanceCounterStorageKHR value) { return tcu::Format::Enum(getPerformanceCounterStorageKHRName, value); } inline tcu::Format::Enum getDebugReportObjectTypeEXTStr (VkDebugReportObjectTypeEXT value) { return tcu::Format::Enum(getDebugReportObjectTypeEXTName, value); } inline tcu::Format::Enum getRasterizationOrderAMDStr (VkRasterizationOrderAMD value) { return tcu::Format::Enum(getRasterizationOrderAMDName, value); } inline tcu::Format::Enum getValidationCheckEXTStr (VkValidationCheckEXT value) { return tcu::Format::Enum(getValidationCheckEXTName, value); } @@ -167,6 +173,9 @@ inline std::ostream& operator<< (std::ostream& s, VkChromaLocation value) { inline std::ostream& operator<< (std::ostream& s, VkDescriptorUpdateTemplateType value) { return s << getDescriptorUpdateTemplateTypeStr(value); } inline std::ostream& operator<< (std::ostream& s, VkColorSpaceKHR value) { return s << getColorSpaceKHRStr(value); } inline std::ostream& operator<< (std::ostream& s, VkPresentModeKHR value) { return s << getPresentModeKHRStr(value); } +inline std::ostream& operator<< (std::ostream& s, VkPerformanceCounterUnitKHR value) { return s << getPerformanceCounterUnitKHRStr(value); } +inline std::ostream& operator<< (std::ostream& s, VkPerformanceCounterScopeKHR value) { return s << getPerformanceCounterScopeKHRStr(value); } +inline std::ostream& operator<< (std::ostream& s, VkPerformanceCounterStorageKHR value) { return s << getPerformanceCounterStorageKHRStr(value); } inline std::ostream& operator<< (std::ostream& s, VkDebugReportObjectTypeEXT value) { return s << getDebugReportObjectTypeEXTStr(value); } inline std::ostream& operator<< (std::ostream& s, VkRasterizationOrderAMD value) { return s << getRasterizationOrderAMDStr(value); } inline std::ostream& operator<< (std::ostream& s, VkValidationCheckEXT value) { return s << getValidationCheckEXTStr(value); } @@ -234,6 +243,7 @@ tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFl tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value); tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value); tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value); +tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value); tcu::Format::Bitfield<32> getResolveModeFlagsKHRStr (VkResolveModeFlagsKHR value); tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value); tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value); @@ -277,6 +287,7 @@ tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurf tcu::Format::Bitfield<32> getMirSurfaceCreateFlagsKHRStr (VkMirSurfaceCreateFlagsKHR value); tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value); tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value); +tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value); tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value); tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value); tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value); @@ -523,6 +534,14 @@ std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value); std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value); std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value); +std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceCounterFeaturesKHR& value); +std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceCounterPropertiesKHR& value); +std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value); +std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value); +std::ostream& operator<< (std::ostream& s, const VkPerformanceQueryCreateInfoKHR& value); +std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value); +std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value); +std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value); std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value); std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value); std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value); diff --git a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl index e607746..abeafae 100644 --- a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl +++ b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl @@ -311,6 +311,13 @@ const char* getStructureTypeName (VkStructureType value) case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR: return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"; case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR: return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"; case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR: return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_FEATURES_KHR: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_PROPERTIES_KHR: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_CREATE_INFO_KHR: return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR: return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR: return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR: return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"; case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR: return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"; case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR: return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"; @@ -673,10 +680,11 @@ const char* getQueryTypeName (VkQueryType value) { switch (value) { - case VK_QUERY_TYPE_OCCLUSION: return "VK_QUERY_TYPE_OCCLUSION"; - case VK_QUERY_TYPE_PIPELINE_STATISTICS: return "VK_QUERY_TYPE_PIPELINE_STATISTICS"; - case VK_QUERY_TYPE_TIMESTAMP: return "VK_QUERY_TYPE_TIMESTAMP"; - default: return DE_NULL; + case VK_QUERY_TYPE_OCCLUSION: return "VK_QUERY_TYPE_OCCLUSION"; + case VK_QUERY_TYPE_PIPELINE_STATISTICS: return "VK_QUERY_TYPE_PIPELINE_STATISTICS"; + case VK_QUERY_TYPE_TIMESTAMP: return "VK_QUERY_TYPE_TIMESTAMP"; + case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR: return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR"; + default: return DE_NULL; } } @@ -1227,6 +1235,50 @@ const char* getPresentModeKHRName (VkPresentModeKHR value) } } +const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value) +{ + switch (value) + { + case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR: return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR"; + default: return DE_NULL; + } +} + +const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value) +{ + switch (value) + { + case VK_QUERY_SCOPE_COMMAND_BUFFER_KHR: return "VK_QUERY_SCOPE_COMMAND_BUFFER_KHR"; + case VK_QUERY_SCOPE_RENDER_PASS_KHR: return "VK_QUERY_SCOPE_RENDER_PASS_KHR"; + case VK_QUERY_SCOPE_COMMAND_KHR: return "VK_QUERY_SCOPE_COMMAND_KHR"; + default: return DE_NULL; + } +} + +const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value) +{ + switch (value) + { + case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR: return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR: return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR: return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR: return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR: return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR: return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR"; + default: return DE_NULL; + } +} + const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value) { switch (value) @@ -2108,6 +2160,16 @@ tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFl return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc)); } +tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value) +{ + static const tcu::Format::BitDesc s_desc[] = + { + tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR, "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR"), + tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR, "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR"), + }; + return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc)); +} + tcu::Format::Bitfield<32> getResolveModeFlagsKHRStr (VkResolveModeFlagsKHR value) { static const tcu::Format::BitDesc s_desc[] = @@ -2379,6 +2441,11 @@ tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreate return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL); } +tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value) +{ + return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL); +} + tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value) { return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL); @@ -5438,6 +5505,99 @@ std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value) return s; } +std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceCounterFeaturesKHR& value) +{ + s << "VkPhysicalDevicePerformanceCounterFeaturesKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n'; + s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n'; + s << '}'; + return s; +} + +std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceCounterPropertiesKHR& value) +{ + s << "VkPhysicalDevicePerformanceCounterPropertiesKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n'; + s << '}'; + return s; +} + +std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value) +{ + s << "VkPerformanceCounterKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tunit = " << value.unit << '\n'; + s << "\tscope = " << value.scope << '\n'; + s << "\tstorage = " << value.storage << '\n'; + s << "\tuuid = " << '\n' << tcu::formatArray(tcu::Format::HexIterator(DE_ARRAY_BEGIN(value.uuid)), tcu::Format::HexIterator(DE_ARRAY_END(value.uuid))) << '\n'; + s << '}'; + return s; +} + +std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value) +{ + s << "VkPerformanceCounterDescriptionKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n'; + s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator(DE_ARRAY_END(value.name))) << '\n'; + s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator(DE_ARRAY_END(value.category))) << '\n'; + s << "\tdescription = " << (const char*)value.description << '\n'; + s << '}'; + return s; +} + +std::ostream& operator<< (std::ostream& s, const VkPerformanceQueryCreateInfoKHR& value) +{ + s << "VkPerformanceQueryCreateInfoKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n'; + s << "\tcounterIndexCount = " << value.counterIndexCount << '\n'; + s << "\tpCounterIndices = " << value.pCounterIndices << '\n'; + s << '}'; + return s; +} + +std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value) +{ + s << "VkPerformanceCounterResultKHR = {\n"; + s << "\tint32 = " << value.int32 << '\n'; + s << "\tint64 = " << value.int64 << '\n'; + s << "\tuint32 = " << value.uint32 << '\n'; + s << "\tuint64 = " << value.uint64 << '\n'; + s << "\tfloat32 = " << value.float32 << '\n'; + s << "\tfloat64 = " << value.float64 << '\n'; + s << '}'; + return s; +} + +std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value) +{ + s << "VkAcquireProfilingLockInfoKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n'; + s << "\ttimeout = " << value.timeout << '\n'; + s << '}'; + return s; +} + +std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value) +{ + s << "VkPerformanceQuerySubmitInfoKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tcounterPassIndex = " << value.counterPassIndex << '\n'; + s << '}'; + return s; +} + std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value) { s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n"; diff --git a/external/vulkancts/framework/vulkan/vkStructTypes.inl b/external/vulkancts/framework/vulkan/vkStructTypes.inl index 8719f8d..34b34ab 100644 --- a/external/vulkancts/framework/vulkan/vkStructTypes.inl +++ b/external/vulkancts/framework/vulkan/vkStructTypes.inl @@ -2307,6 +2307,75 @@ struct VkFenceGetFdInfoKHR VkExternalFenceHandleTypeFlagBits handleType; }; +struct VkPhysicalDevicePerformanceCounterFeaturesKHR +{ + VkStructureType sType; + void* pNext; + VkBool32 performanceCounterQueryPools; + VkBool32 performanceCounterMultipleQueryPools; +}; + +struct VkPhysicalDevicePerformanceCounterPropertiesKHR +{ + VkStructureType sType; + void* pNext; + VkBool32 allowCommandBufferQueryCopies; +}; + +struct VkPerformanceCounterKHR +{ + VkStructureType sType; + const void* pNext; + VkPerformanceCounterUnitKHR unit; + VkPerformanceCounterScopeKHR scope; + VkPerformanceCounterStorageKHR storage; + deUint8 uuid[VK_UUID_SIZE]; +}; + +struct VkPerformanceCounterDescriptionKHR +{ + VkStructureType sType; + const void* pNext; + VkPerformanceCounterDescriptionFlagsKHR flags; + char name[VK_MAX_DESCRIPTION_SIZE]; + char category[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; +}; + +struct VkPerformanceQueryCreateInfoKHR +{ + VkStructureType sType; + const void* pNext; + deUint32 queueFamilyIndex; + deUint32 counterIndexCount; + const deUint32* pCounterIndices; +}; + +union VkPerformanceCounterResultKHR +{ + deInt32 int32; + deInt64 int64; + deUint32 uint32; + deUint64 uint64; + float float32; + double float64; +}; + +struct VkAcquireProfilingLockInfoKHR +{ + VkStructureType sType; + const void* pNext; + VkAcquireProfilingLockFlagsKHR flags; + deUint64 timeout; +}; + +struct VkPerformanceQuerySubmitInfoKHR +{ + VkStructureType sType; + const void* pNext; + deUint32 counterPassIndex; +}; + struct VkPhysicalDeviceSurfaceInfo2KHR { VkStructureType sType; diff --git a/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl b/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl index 1e74426..c872700 100644 --- a/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl +++ b/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl @@ -166,6 +166,8 @@ virtual VkResult importFenceWin32HandleKHR (VkDevice device, const VkImpor virtual VkResult getFenceWin32HandleKHR (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0; virtual VkResult importFenceFdKHR (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const = 0; virtual VkResult getFenceFdKHR (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0; +virtual VkResult acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const = 0; +virtual void releaseProfilingLockKHR (VkDevice device) const = 0; virtual VkResult debugMarkerSetObjectTagEXT (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const = 0; virtual VkResult debugMarkerSetObjectNameEXT (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const = 0; virtual void cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0; diff --git a/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl b/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl index 5ca2c68..6ca60b6 100644 --- a/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl +++ b/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl @@ -1,70 +1,72 @@ /* WARNING: This is auto-generated file. Do not modify, since changes will * be lost! Modify the generating script instead. */ -virtual void destroyInstance (VkInstance instance, const VkAllocationCallbacks* pAllocator) const = 0; -virtual VkResult enumeratePhysicalDevices (VkInstance instance, deUint32* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) const = 0; -virtual void getPhysicalDeviceFeatures (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) const = 0; -virtual void getPhysicalDeviceFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) const = 0; -virtual VkResult getPhysicalDeviceImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) const = 0; -virtual void getPhysicalDeviceProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) const = 0; -virtual void getPhysicalDeviceQueueFamilyProperties (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) const = 0; -virtual void getPhysicalDeviceMemoryProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) const = 0; -virtual VkResult createDevice (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) const = 0; -virtual VkResult enumerateDeviceExtensionProperties (VkPhysicalDevice physicalDevice, const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties) const = 0; -virtual VkResult enumerateDeviceLayerProperties (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkLayerProperties* pProperties) const = 0; -virtual void getPhysicalDeviceSparseImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, deUint32* pPropertyCount, VkSparseImageFormatProperties* pProperties) const = 0; -virtual VkResult enumeratePhysicalDeviceGroups (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const = 0; -virtual void getPhysicalDeviceFeatures2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) const = 0; -virtual void getPhysicalDeviceProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) const = 0; -virtual void getPhysicalDeviceFormatProperties2 (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties) const = 0; -virtual VkResult getPhysicalDeviceImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) const = 0; -virtual void getPhysicalDeviceQueueFamilyProperties2 (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) const = 0; -virtual void getPhysicalDeviceMemoryProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) const = 0; -virtual void getPhysicalDeviceSparseImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties) const = 0; -virtual void getPhysicalDeviceExternalBufferProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) const = 0; -virtual void getPhysicalDeviceExternalFenceProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) const = 0; -virtual void getPhysicalDeviceExternalSemaphoreProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) const = 0; -virtual void destroySurfaceKHR (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const = 0; -virtual VkResult getPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const = 0; -virtual VkResult getPhysicalDeviceSurfaceCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const = 0; -virtual VkResult getPhysicalDeviceSurfaceFormatsKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const = 0; -virtual VkResult getPhysicalDeviceSurfacePresentModesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pPresentModeCount, VkPresentModeKHR* pPresentModes) const = 0; -virtual VkResult getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const = 0; -virtual VkResult getPhysicalDeviceDisplayPropertiesKHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const = 0; -virtual VkResult getPhysicalDeviceDisplayPlanePropertiesKHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const = 0; -virtual VkResult getDisplayPlaneSupportedDisplaysKHR (VkPhysicalDevice physicalDevice, deUint32 planeIndex, deUint32* pDisplayCount, VkDisplayKHR* pDisplays) const = 0; -virtual VkResult getDisplayModePropertiesKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const = 0; -virtual VkResult createDisplayModeKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const = 0; -virtual VkResult getDisplayPlaneCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, deUint32 planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const = 0; -virtual VkResult createDisplayPlaneSurfaceKHR (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual VkResult createXlibSurfaceKHR (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual VkBool32 getPhysicalDeviceXlibPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const = 0; -virtual VkResult createXcbSurfaceKHR (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual VkBool32 getPhysicalDeviceXcbPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const = 0; -virtual VkResult createWaylandSurfaceKHR (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual VkBool32 getPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::WaylandDisplayPtr display) const = 0; -virtual VkResult createMirSurfaceKHR (VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual VkBool32 getPhysicalDeviceMirPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::MirConnectionPtr connection) const = 0; -virtual VkResult createAndroidSurfaceKHR (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual VkResult createWin32SurfaceKHR (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual VkBool32 getPhysicalDeviceWin32PresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex) const = 0; -virtual VkResult getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const = 0; -virtual VkResult getPhysicalDeviceSurfaceFormats2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) const = 0; -virtual VkResult getPhysicalDeviceDisplayProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties) const = 0; -virtual VkResult getPhysicalDeviceDisplayPlaneProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) const = 0; -virtual VkResult getDisplayModeProperties2KHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) const = 0; -virtual VkResult getDisplayPlaneCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) const = 0; -virtual VkResult createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const = 0; -virtual void destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const = 0; -virtual void debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const = 0; -virtual VkResult getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const = 0; -virtual VkResult createViSurfaceNN (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual void getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const = 0; -virtual VkResult releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const = 0; -virtual VkResult acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const = 0; -virtual VkResult getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay) const = 0; -virtual VkResult getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const = 0; -virtual VkResult createIOSSurfaceMVK (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual VkResult createMacOSSurfaceMVK (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; -virtual void getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const = 0; -virtual VkResult getPhysicalDeviceCooperativeMatrixPropertiesNV (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties) const = 0; +virtual void destroyInstance (VkInstance instance, const VkAllocationCallbacks* pAllocator) const = 0; +virtual VkResult enumeratePhysicalDevices (VkInstance instance, deUint32* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) const = 0; +virtual void getPhysicalDeviceFeatures (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) const = 0; +virtual void getPhysicalDeviceFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) const = 0; +virtual VkResult getPhysicalDeviceImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) const = 0; +virtual void getPhysicalDeviceProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) const = 0; +virtual void getPhysicalDeviceQueueFamilyProperties (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) const = 0; +virtual void getPhysicalDeviceMemoryProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) const = 0; +virtual VkResult createDevice (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) const = 0; +virtual VkResult enumerateDeviceExtensionProperties (VkPhysicalDevice physicalDevice, const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties) const = 0; +virtual VkResult enumerateDeviceLayerProperties (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkLayerProperties* pProperties) const = 0; +virtual void getPhysicalDeviceSparseImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, deUint32* pPropertyCount, VkSparseImageFormatProperties* pProperties) const = 0; +virtual VkResult enumeratePhysicalDeviceGroups (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const = 0; +virtual void getPhysicalDeviceFeatures2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) const = 0; +virtual void getPhysicalDeviceProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) const = 0; +virtual void getPhysicalDeviceFormatProperties2 (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties) const = 0; +virtual VkResult getPhysicalDeviceImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) const = 0; +virtual void getPhysicalDeviceQueueFamilyProperties2 (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) const = 0; +virtual void getPhysicalDeviceMemoryProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) const = 0; +virtual void getPhysicalDeviceSparseImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties) const = 0; +virtual void getPhysicalDeviceExternalBufferProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) const = 0; +virtual void getPhysicalDeviceExternalFenceProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) const = 0; +virtual void getPhysicalDeviceExternalSemaphoreProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) const = 0; +virtual void destroySurfaceKHR (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const = 0; +virtual VkResult getPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const = 0; +virtual VkResult getPhysicalDeviceSurfaceCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const = 0; +virtual VkResult getPhysicalDeviceSurfaceFormatsKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const = 0; +virtual VkResult getPhysicalDeviceSurfacePresentModesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pPresentModeCount, VkPresentModeKHR* pPresentModes) const = 0; +virtual VkResult getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const = 0; +virtual VkResult getPhysicalDeviceDisplayPropertiesKHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const = 0; +virtual VkResult getPhysicalDeviceDisplayPlanePropertiesKHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const = 0; +virtual VkResult getDisplayPlaneSupportedDisplaysKHR (VkPhysicalDevice physicalDevice, deUint32 planeIndex, deUint32* pDisplayCount, VkDisplayKHR* pDisplays) const = 0; +virtual VkResult getDisplayModePropertiesKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const = 0; +virtual VkResult createDisplayModeKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const = 0; +virtual VkResult getDisplayPlaneCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, deUint32 planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const = 0; +virtual VkResult createDisplayPlaneSurfaceKHR (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual VkResult createXlibSurfaceKHR (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual VkBool32 getPhysicalDeviceXlibPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const = 0; +virtual VkResult createXcbSurfaceKHR (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual VkBool32 getPhysicalDeviceXcbPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const = 0; +virtual VkResult createWaylandSurfaceKHR (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual VkBool32 getPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::WaylandDisplayPtr display) const = 0; +virtual VkResult createMirSurfaceKHR (VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual VkBool32 getPhysicalDeviceMirPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::MirConnectionPtr connection) const = 0; +virtual VkResult createAndroidSurfaceKHR (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual VkResult createWin32SurfaceKHR (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual VkBool32 getPhysicalDeviceWin32PresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex) const = 0; +virtual void enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, deUint32* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) const = 0; +virtual void getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR (VkPhysicalDevice physicalDevice, const VkPerformanceQueryCreateInfoKHR* pPerformanceQueryCreateInfo, deUint32* pNumPasses) const = 0; +virtual VkResult getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const = 0; +virtual VkResult getPhysicalDeviceSurfaceFormats2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) const = 0; +virtual VkResult getPhysicalDeviceDisplayProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties) const = 0; +virtual VkResult getPhysicalDeviceDisplayPlaneProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) const = 0; +virtual VkResult getDisplayModeProperties2KHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) const = 0; +virtual VkResult getDisplayPlaneCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) const = 0; +virtual VkResult createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const = 0; +virtual void destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const = 0; +virtual void debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const = 0; +virtual VkResult getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const = 0; +virtual VkResult createViSurfaceNN (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual void getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const = 0; +virtual VkResult releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const = 0; +virtual VkResult acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const = 0; +virtual VkResult getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay) const = 0; +virtual VkResult getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const = 0; +virtual VkResult createIOSSurfaceMVK (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual VkResult createMacOSSurfaceMVK (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0; +virtual void getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const = 0; +virtual VkResult getPhysicalDeviceCooperativeMatrixPropertiesNV (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties) const = 0; diff --git a/external/vulkancts/framework/vulkan/vkVulkan_c.inl b/external/vulkancts/framework/vulkan/vkVulkan_c.inl index 87c0a96..48551cc 100644 --- a/external/vulkancts/framework/vulkan/vkVulkan_c.inl +++ b/external/vulkancts/framework/vulkan/vkVulkan_c.inl @@ -362,6 +362,13 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_FEATURES_KHR = 1000116000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_PROPERTIES_KHR = 1000116001, + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_CREATE_INFO_KHR = 1000116002, + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003, + VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, @@ -725,6 +732,7 @@ typedef enum VkQueryType { VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, + VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), @@ -5961,6 +5969,149 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( int* pFd); #endif +#define VK_KHR_performance_query 1 +#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1 +#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query" + + +typedef enum VkPerformanceCounterUnitKHR { + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0, + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1, + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2, + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3, + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4, + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5, + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6, + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7, + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8, + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9, + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10, + VK_PERFORMANCE_COUNTER_UNIT_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR, + VK_PERFORMANCE_COUNTER_UNIT_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR, + VK_PERFORMANCE_COUNTER_UNIT_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR + 1), + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterUnitKHR; + +typedef enum VkPerformanceCounterScopeKHR { + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0, + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1, + VK_QUERY_SCOPE_COMMAND_KHR = 2, + VK_PERFORMANCE_COUNTER_SCOPE_BEGIN_RANGE_KHR = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR, + VK_PERFORMANCE_COUNTER_SCOPE_END_RANGE_KHR = VK_QUERY_SCOPE_COMMAND_KHR, + VK_PERFORMANCE_COUNTER_SCOPE_RANGE_SIZE_KHR = (VK_QUERY_SCOPE_COMMAND_KHR - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR + 1), + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterScopeKHR; + +typedef enum VkPerformanceCounterStorageKHR { + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0, + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1, + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2, + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3, + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4, + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5, + VK_PERFORMANCE_COUNTER_STORAGE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR, + VK_PERFORMANCE_COUNTER_STORAGE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR, + VK_PERFORMANCE_COUNTER_STORAGE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR + 1), + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterStorageKHR; + + +typedef enum VkPerformanceCounterDescriptionFlagBitsKHR { + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 0x00000001, + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 0x00000002, + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterDescriptionFlagBitsKHR; +typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; +typedef VkFlags VkAcquireProfilingLockFlagsKHR; + +typedef struct VkPhysicalDevicePerformanceCounterFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 performanceCounterQueryPools; + VkBool32 performanceCounterMultipleQueryPools; +} VkPhysicalDevicePerformanceCounterFeaturesKHR; + +typedef struct VkPhysicalDevicePerformanceCounterPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 allowCommandBufferQueryCopies; +} VkPhysicalDevicePerformanceCounterPropertiesKHR; + +typedef struct VkPerformanceCounterKHR { + VkStructureType sType; + const void* pNext; + VkPerformanceCounterUnitKHR unit; + VkPerformanceCounterScopeKHR scope; + VkPerformanceCounterStorageKHR storage; + deUint8 uuid[VK_UUID_SIZE]; +} VkPerformanceCounterKHR; + +typedef struct VkPerformanceCounterDescriptionKHR { + VkStructureType sType; + const void* pNext; + VkPerformanceCounterDescriptionFlagsKHR flags; + char name[VK_MAX_DESCRIPTION_SIZE]; + char category[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; +} VkPerformanceCounterDescriptionKHR; + +typedef struct VkPerformanceQueryCreateInfoKHR { + VkStructureType sType; + const void* pNext; + deUint32 queueFamilyIndex; + deUint32 counterIndexCount; + const deUint32* pCounterIndices; +} VkPerformanceQueryCreateInfoKHR; + +typedef union VkPerformanceCounterResultKHR { + deInt32 int32; + deInt64 int64; + deUint32 uint32; + deUint64 uint64; + float float32; + double float64; +} VkPerformanceCounterResultKHR; + +typedef struct VkAcquireProfilingLockInfoKHR { + VkStructureType sType; + const void* pNext; + VkAcquireProfilingLockFlagsKHR flags; + deUint64 timeout; +} VkAcquireProfilingLockInfoKHR; + +typedef struct VkPerformanceQuerySubmitInfoKHR { + VkStructureType sType; + const void* pNext; + deUint32 counterPassIndex; +} VkPerformanceQuerySubmitInfoKHR; + + +typedef void (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, deUint32* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkPerformanceQueryCreateInfoKHR* pPerformanceQueryCreateInfo, deUint32* pNumPasses); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + VkPhysicalDevice physicalDevice, + deUint32 queueFamilyIndex, + deUint32* pCounterCount, + VkPerformanceCounterKHR* pCounters, + VkPerformanceCounterDescriptionKHR* pCounterDescriptions); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + VkPhysicalDevice physicalDevice, + const VkPerformanceQueryCreateInfoKHR* pPerformanceQueryCreateInfo, + deUint32* pNumPasses); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR( + VkDevice device, + const VkAcquireProfilingLockInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR( + VkDevice device); +#endif + #define VK_KHR_maintenance2 1 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp index 4020894..9e0e0ab 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp @@ -760,6 +760,7 @@ void checkDeviceExtensions (tcu::ResultCollector& results, const vector& "VK_KHR_shader_atomic_int64", "VK_KHR_vulkan_memory_model", "VK_KHR_swapchain_mutable_format", + "VK_KHR_performance_query", }; checkKhrExtensions(results, extensions, DE_LENGTH_OF_ARRAY(s_allowedDeviceKhrExtensions), s_allowedDeviceKhrExtensions); @@ -2653,6 +2654,7 @@ tcu::TestStatus deviceFeatures2 (Context& context) const bool khr_8bit_storage = checkExtension(properties,"VK_KHR_8bit_storage"); const bool ext_conditional_rendering = checkExtension(properties,"VK_EXT_conditional_rendering"); const bool scalar_block_layout = checkExtension(properties,"VK_EXT_scalar_block_layout"); + const bool performance_counter = checkExtension(properties,"VK_KHR_performance_query"); bool khr_16bit_storage = true; bool khr_multiview = true; bool deviceProtectedMemory = true; @@ -2676,6 +2678,7 @@ tcu::TestStatus deviceFeatures2 (Context& context) VkPhysicalDeviceSamplerYcbcrConversionFeatures samplerYcbcrConversionFeatures[count]; VkPhysicalDeviceVariablePointerFeatures variablePointerFeatures[count]; VkPhysicalDeviceScalarBlockLayoutFeaturesEXT scalarBlockLayoutFeatures[count]; + VkPhysicalDevicePerformanceCounterFeaturesKHR performanceCounterFeatures[count]; for (int ndx = 0; ndx < count; ++ndx) { @@ -2687,6 +2690,7 @@ tcu::TestStatus deviceFeatures2 (Context& context) deMemset(&samplerYcbcrConversionFeatures[ndx], 0xFF*ndx, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures)); deMemset(&variablePointerFeatures[ndx], 0xFF*ndx, sizeof(VkPhysicalDeviceVariablePointerFeatures)); deMemset(&scalarBlockLayoutFeatures[ndx], 0xFF*ndx, sizeof(VkPhysicalDeviceScalarBlockLayoutFeaturesEXT)); + deMemset(&performanceCounterFeatures[ndx], 0xFF*ndx, sizeof(VkPhysicalDevicePerformanceCounterFeaturesKHR)); device8BitStorageFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR; device8BitStorageFeatures[ndx].pNext = &deviceConditionalRenderingFeatures[ndx]; @@ -2710,7 +2714,10 @@ tcu::TestStatus deviceFeatures2 (Context& context) variablePointerFeatures[ndx].pNext = &scalarBlockLayoutFeatures[ndx]; scalarBlockLayoutFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT; - scalarBlockLayoutFeatures[ndx].pNext = DE_NULL; + scalarBlockLayoutFeatures[ndx].pNext = &performanceCounterFeatures[ndx]; + + performanceCounterFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_FEATURES_KHR; + performanceCounterFeatures[ndx].pNext = DE_NULL; deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features)); extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; @@ -2777,6 +2784,12 @@ tcu::TestStatus deviceFeatures2 (Context& context) { TCU_FAIL("Mismatch between VkPhysicalDeviceScalarBlockLayoutFeaturesEXT"); } + if (performance_counter && + ((performanceCounterFeatures[0].performanceCounterQueryPools != performanceCounterFeatures[1].performanceCounterQueryPools) || + (performanceCounterFeatures[0].performanceCounterMultipleQueryPools != performanceCounterFeatures[1].performanceCounterMultipleQueryPools))) + { + TCU_FAIL("Mismatch between VkPhysicalDevicePerformanceCounterFeaturesKHR"); + } if (khr_8bit_storage) log << TestLog::Message << device8BitStorageFeatures[0] << TestLog::EndMessage; if (ext_conditional_rendering) @@ -2793,11 +2806,12 @@ tcu::TestStatus deviceFeatures2 (Context& context) log << TestLog::Message << variablePointerFeatures[0] << TestLog::EndMessage; if (scalar_block_layout) log << TestLog::Message << scalarBlockLayoutFeatures[0] << TestLog::EndMessage; + if (performance_counter) + log << TestLog::Message << performanceCounterFeatures[0] << TestLog::EndMessage; return tcu::TestStatus::pass("Querying device features succeeded"); } - tcu::TestStatus deviceProperties2 (Context& context) { const PlatformInterface& vkp = context.getPlatformInterface(); @@ -3041,6 +3055,29 @@ tcu::TestStatus deviceProperties2 (Context& context) log << TestLog::Message << dsResolveProperties[0] << TestLog::EndMessage; } + if (isExtensionSupported(extensions, RequiredExtension("VK_KHR_performance_query"))) + { + VkPhysicalDevicePerformanceCounterPropertiesKHR performanceCounterProperties[count]; + + for (int ndx = 0; ndx < count; ++ndx) + { + deMemset(&performanceCounterProperties[ndx], 0xFF, sizeof(VkPhysicalDevicePerformanceCounterPropertiesKHR)); + performanceCounterProperties[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_PROPERTIES_KHR; + performanceCounterProperties[ndx].pNext = DE_NULL; + + extProperties.pNext = &performanceCounterProperties[ndx]; + + vki.getPhysicalDeviceProperties2(physicalDevice, &extProperties); + } + + if (deMemCmp(&performanceCounterProperties[0], &performanceCounterProperties[1], sizeof(VkPhysicalDevicePerformanceCounterPropertiesKHR)) != 0) + { + TCU_FAIL("Mismatch in VkPhysicalDevicePerformanceCounterPropertiesKHR"); + } + + log << TestLog::Message << performanceCounterProperties[0] << TestLog::EndMessage; + } + return tcu::TestStatus::pass("Querying device properties succeeded"); } diff --git a/external/vulkancts/modules/vulkan/query_pool/CMakeLists.txt b/external/vulkancts/modules/vulkan/query_pool/CMakeLists.txt index 9f2b399..8d6c3fd 100644 --- a/external/vulkancts/modules/vulkan/query_pool/CMakeLists.txt +++ b/external/vulkancts/modules/vulkan/query_pool/CMakeLists.txt @@ -8,6 +8,8 @@ set(DEQP_VK_QUERY_POOL_SRCS vktQueryPoolTests.cpp vktQueryPoolOcclusionTests.hpp vktQueryPoolOcclusionTests.cpp + vktQueryPoolPerformanceTests.hpp + vktQueryPoolPerformanceTests.cpp vktQueryPoolStatisticsTests.hpp vktQueryPoolStatisticsTests.cpp ) diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp new file mode 100644 index 0000000..2dceb7b --- /dev/null +++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp @@ -0,0 +1,1198 @@ +/*------------------------------------------------------------------------ + * Vulkan Conformance Tests + * ------------------------ + * + * Copyright (c) 2018 The Khronos Group Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *//*! + * \file + * \brief Vulkan Performance Query Tests + *//*--------------------------------------------------------------------*/ + +#include "vktQueryPoolPerformanceTests.hpp" +#include "vktTestCase.hpp" + +#include "vktDrawImageObjectUtil.hpp" +#include "vktDrawBufferObjectUtil.hpp" +#include "vktDrawCreateInfoUtil.hpp" +#include "vkBuilderUtil.hpp" +#include "vkRefUtil.hpp" +#include "vkPrograms.hpp" +#include "vkTypeUtil.hpp" +#include "vkCmdUtil.hpp" +#include "vkQueryUtil.hpp" + +#include "deMath.h" + +#include "tcuTestLog.hpp" +#include "tcuResource.hpp" +#include "tcuImageCompare.hpp" +#include "vkImageUtil.hpp" +#include "tcuCommandLine.hpp" +#include "tcuRGBA.hpp" + +namespace vkt +{ +namespace QueryPool +{ +namespace +{ + +using namespace vk; +using namespace Draw; + +std::string uuidToHex(const deUint8 uuid[]) +{ + const size_t bytesPerPart[] = {4, 2, 2, 2, 6}; + const deUint8* ptr = &uuid[0]; + const size_t stringSize = VK_UUID_SIZE * 2 + DE_LENGTH_OF_ARRAY(bytesPerPart) - 1; + std::string result; + + result.reserve(stringSize); + + for (size_t partNdx = 0; partNdx < DE_LENGTH_OF_ARRAY(bytesPerPart); ++partNdx) + { + const size_t bytesInPart = bytesPerPart[partNdx]; + const size_t symbolsInPart = 2 * bytesInPart; + deUint64 part = 0; + std::string partString; + + for (size_t byteInPartNdx = 0; byteInPartNdx < bytesInPart; ++byteInPartNdx) + { + part = (part << 8) | *ptr; + ++ptr; + } + + partString = tcu::toHex(part).toString(); + + DE_ASSERT(partString.size() > symbolsInPart); + + result += (symbolsInPart >= partString.size()) ? partString : partString.substr(partString.size() - symbolsInPart); + + if (partNdx + 1 != DE_LENGTH_OF_ARRAY(bytesPerPart)) + result += '-'; + } + + DE_ASSERT(ptr == &uuid[VK_UUID_SIZE]); + DE_ASSERT(result.size() == stringSize); + + return result; +} + +class EnumerateAndValidateTest : public TestInstance +{ +public: + EnumerateAndValidateTest (vkt::Context& context, VkQueueFlagBits queueFlagBits); + tcu::TestStatus iterate (void); + +protected: + void basicValidateCounter (const deUint32 familyIndex); + +private: + VkQueueFlagBits m_queueFlagBits; + bool m_requiredExtensionsPresent; +}; + +EnumerateAndValidateTest::EnumerateAndValidateTest (vkt::Context& context, VkQueueFlagBits queueFlagBits) + : TestInstance(context) + , m_queueFlagBits(queueFlagBits) + , m_requiredExtensionsPresent(context.requireDeviceExtension("VK_KHR_performance_query")) +{ +} + +tcu::TestStatus EnumerateAndValidateTest::iterate (void) +{ + const InstanceInterface& vki = m_context.getInstanceInterface(); + const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice(); + const std::vector queueProperties = getPhysicalDeviceQueueFamilyProperties(vki, physicalDevice); + + for (deUint32 queueNdx = 0; queueNdx < queueProperties.size(); queueNdx++) + { + if ((queueProperties[queueNdx].queueFlags & m_queueFlagBits) == 0) + continue; + + deUint32 counterCount = 0; + vki.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueNdx, &counterCount, DE_NULL, DE_NULL); + if (counterCount == 0) + continue; + + { + std::vector counters (counterCount); + deUint32 counterCountRead = counterCount; + std::map uuidValidator; + + vki.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueNdx, &counterCountRead, &counters[0], DE_NULL); + + if (counterCountRead != counterCount) + TCU_FAIL("Number of counters read (" + de::toString(counterCountRead) + ") is not equal to number of counters reported (" + de::toString(counterCount) + ")"); + + for (size_t counterNdx = 0; counterNdx < counters.size(); ++counterNdx) + { + const VkPerformanceCounterKHR& counter = counters[counterNdx]; + const std::string uuidStr = uuidToHex(counter.uuid); + + if (uuidValidator.find(uuidStr) != uuidValidator.end()) + TCU_FAIL("Duplicate counter UUID detected " + uuidStr); + else + uuidValidator[uuidStr] = counterNdx; + + if (counter.scope >= VK_PERFORMANCE_COUNTER_SCOPE_KHR_LAST) + TCU_FAIL("Counter scope is invalid " + de::toString(static_cast(counter.scope))); + + if (counter.storage >= VK_PERFORMANCE_COUNTER_STORAGE_KHR_LAST) + TCU_FAIL("Counter storage is invalid " + de::toString(static_cast(counter.storage))); + + if (counter.unit >= VK_PERFORMANCE_COUNTER_UNIT_KHR_LAST) + TCU_FAIL("Counter unit is invalid " + de::toString(static_cast(counter.unit))); + } + } + { + std::vector counterDescriptors (counterCount); + deUint32 counterCountRead = counterCount; + + vki.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueNdx, &counterCountRead, DE_NULL, &counterDescriptors[0]); + + if (counterCountRead != counterCount) + TCU_FAIL("Number of counters read (" + de::toString(counterCountRead) + ") is not equal to number of counters reported (" + de::toString(counterCount) + ")"); + + for (size_t counterNdx = 0; counterNdx < counterDescriptors.size(); ++counterNdx) + { + const VkPerformanceCounterDescriptionKHR& counterDescriptor = counterDescriptors[counterNdx]; + const VkPerformanceCounterDescriptionFlagsKHR allowedFlags = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR + | VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR; + + if ((counterDescriptor.flags & ~allowedFlags) != 0) + TCU_FAIL("Invalid flags present in VkPerformanceCounterDescriptionFlagsKHR"); + } + } + } + + return tcu::TestStatus::pass("Pass"); +} + +class QueryTestBase : public TestInstance +{ +public: + QueryTestBase (vkt::Context& context); + +protected: + + void setupCounters (void); + Move createQueryPool (deUint32 enabledCounterOffset, deUint32 enabledCounterStride); + bool acquireProfilingLock (void); + void releaseProfilingLock (void); + bool verifyQueryResults (VkQueryPool queryPool); + deUint32 getRequiredNumerOfPasses(void); + +private: + + bool m_requiredExtensionsPresent; + deUint32 m_requiredNumerOfPasses; + std::map m_enabledCountersCountMap; // number of counters that were enabled per query pool + std::vector m_counters; // counters provided by the device +}; + +QueryTestBase::QueryTestBase(vkt::Context& context) + : TestInstance (context) + , m_requiredExtensionsPresent(context.requireDeviceExtension("VK_KHR_performance_query")) + , m_requiredNumerOfPasses(0) +{ +} + +void QueryTestBase::setupCounters() +{ + const InstanceInterface& vki = m_context.getInstanceInterface(); + const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice(); + const CmdPoolCreateInfo cmdPoolCreateInfo = m_context.getUniversalQueueFamilyIndex(); + deUint32 queueFamilyIndex = cmdPoolCreateInfo.queueFamilyIndex; + deUint32 counterCount; + + if (!m_context.getPerformanceCounterFeatures().performanceCounterQueryPools) + TCU_THROW(NotSupportedError, "Performance counter query pools feature not supported"); + + // get the number of supported counters + vki.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, &counterCount, NULL, NULL); + if (!counterCount) + TCU_THROW(NotSupportedError, "QualityWarning: there are no performance counters"); + + // get supported counters + m_counters.resize(counterCount); + vki.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, &counterCount, &m_counters[0], DE_NULL); +} + +Move QueryTestBase::createQueryPool(deUint32 enabledCounterOffset, deUint32 enabledCounterStride) +{ + const InstanceInterface& vki = m_context.getInstanceInterface(); + const DeviceInterface& vkd = m_context.getDeviceInterface(); + const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice(); + const VkDevice device = m_context.getDevice(); + const CmdPoolCreateInfo cmdPoolCreateInfo = m_context.getUniversalQueueFamilyIndex(); + const deUint32 counterCount = (deUint32)m_counters.size(); + deUint32 enabledIndex = enabledCounterOffset ? 0 : enabledCounterStride; + std::vector enabledCounters; + + // enable every counter that has command or render pass scope + for (deUint32 i = 0; i < counterCount; i++) + { + // skip counters with command buffer scope + if (m_counters[i].scope == VK_QUERY_SCOPE_COMMAND_BUFFER_KHR) + continue; + + // handle offset + if (enabledCounterOffset) + { + if (enabledCounterOffset == enabledIndex) + { + // disable handling offset + enabledCounterOffset = 0; + + // eneble next index in stride condition + enabledIndex = enabledCounterStride; + } + else + { + ++enabledIndex; + continue; + } + } + + // handle stride + if (enabledIndex == enabledCounterStride) + { + enabledCounters.push_back(i); + enabledIndex = 0; + } + else + ++enabledIndex; + } + + // get number of counters that were enabled for this query pool + deUint32 enabledCountersCount = static_cast(enabledCounters.size()); + if (!enabledCountersCount) + TCU_THROW(NotSupportedError, "QualityWarning: no performance counters"); + + // define performance query + VkPerformanceQueryCreateInfoKHR performanceQueryCreateInfo = + { + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_CREATE_INFO_KHR, + NULL, + cmdPoolCreateInfo.queueFamilyIndex, // queue family that this performance query is performed on + enabledCountersCount, // number of counters to enable + &enabledCounters[0] // array of indices of counters to enable + }; + + // get the number of passes counters will require + vki.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, &performanceQueryCreateInfo, &m_requiredNumerOfPasses); + + // create query pool + VkQueryPoolCreateInfo queryPoolCreateInfo = + { + VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, + &performanceQueryCreateInfo, + 0, // flags + VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, // new query type + 1, // queryCount + 0 + }; + + Move queryPool = vk::createQueryPool(vkd, device, &queryPoolCreateInfo); + + // memorize number of enabled counters for this query pool + m_enabledCountersCountMap[queryPool.get().getInternal()] = enabledCountersCount; + + return queryPool; +} + +bool QueryTestBase::acquireProfilingLock() +{ + const DeviceInterface& vkd = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + + // acquire profiling lock before we record command buffers + VkAcquireProfilingLockInfoKHR lockInfo = + { + VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR, + NULL, + 0, + 2000000000ull // wait 2s for the lock + }; + + VkResult result = vkd.acquireProfilingLockKHR(device, &lockInfo); + if (result == VK_TIMEOUT) + { + m_context.getTestContext().getLog() << tcu::TestLog::Message + << "Timeout reached, profiling lock wasn't acquired - test had to end earlier" + << tcu::TestLog::EndMessage; + return false; + } + if (result != VK_SUCCESS) + TCU_FAIL("Profiling lock wasn't acquired"); + + return true; +} + +void QueryTestBase::releaseProfilingLock() +{ + const DeviceInterface& vkd = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + + // release the profiling lock after the command buffer is no longer in the pending state + vkd.releaseProfilingLockKHR(device); +} + +bool QueryTestBase::verifyQueryResults(VkQueryPool queryPool) +{ + const DeviceInterface& vkd = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + + // create an array to hold the results of all counters + deUint32 enabledCounterCount = m_enabledCountersCountMap[queryPool.getInternal()]; + std::vector recordedCounters(enabledCounterCount); + + // verify that query result can be retrieved + VkResult result = vkd.getQueryPoolResults(device, queryPool, 0, 1, sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount, + &recordedCounters[0], sizeof(VkPerformanceCounterResultKHR), VK_QUERY_RESULT_WAIT_BIT); + if (result == VK_NOT_READY) + { + m_context.getTestContext().getLog() << tcu::TestLog::Message + << "Pass but result is not ready" + << tcu::TestLog::EndMessage; + return true; + } + return (result == VK_SUCCESS); +} + +deUint32 QueryTestBase::getRequiredNumerOfPasses() +{ + return m_requiredNumerOfPasses; +} + +// Base class for all graphic tests +class GraphicQueryTestBase : public QueryTestBase +{ +public: + GraphicQueryTestBase(vkt::Context& context); + +protected: + void initStateObjects(void); + +protected: + Move m_pipeline; + Move m_pipelineLayout; + + de::SharedPtr m_colorAttachmentImage; + Move m_attachmentView; + + Move m_renderPass; + Move m_framebuffer; + + de::SharedPtr m_vertexBuffer; + + VkFormat m_colorAttachmentFormat; + deUint32 m_size; +}; + +GraphicQueryTestBase::GraphicQueryTestBase(vkt::Context& context) + : QueryTestBase(context) + , m_colorAttachmentFormat(VK_FORMAT_R8G8B8A8_UNORM) + , m_size(32) +{ +} + +void GraphicQueryTestBase::initStateObjects(void) +{ + const VkDevice device = m_context.getDevice(); + const DeviceInterface& vkd = m_context.getDeviceInterface(); + + //attachment images and views + { + VkExtent3D imageExtent = + { + m_size, // width + m_size, // height + 1 // depth + }; + + const ImageCreateInfo colorImageCreateInfo(VK_IMAGE_TYPE_2D, m_colorAttachmentFormat, imageExtent, 1, 1, + VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_TILING_OPTIMAL, + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT); + + m_colorAttachmentImage = Image::createAndAlloc(vkd, device, colorImageCreateInfo, m_context.getDefaultAllocator(), + m_context.getUniversalQueueFamilyIndex()); + + const ImageViewCreateInfo attachmentViewInfo(m_colorAttachmentImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_colorAttachmentFormat); + m_attachmentView = createImageView(vkd, device, &attachmentViewInfo); + } + + // renderpass and framebuffer + { + RenderPassCreateInfo renderPassCreateInfo; + renderPassCreateInfo.addAttachment(AttachmentDescription(m_colorAttachmentFormat, // format + VK_SAMPLE_COUNT_1_BIT, // samples + VK_ATTACHMENT_LOAD_OP_CLEAR, // loadOp + VK_ATTACHMENT_STORE_OP_DONT_CARE, // storeOp + VK_ATTACHMENT_LOAD_OP_DONT_CARE, // stencilLoadOp + VK_ATTACHMENT_STORE_OP_DONT_CARE, // stencilLoadOp + VK_IMAGE_LAYOUT_GENERAL, // initialLauout + VK_IMAGE_LAYOUT_GENERAL)); // finalLayout + + const VkAttachmentReference colorAttachmentReference = + { + 0, // attachment + VK_IMAGE_LAYOUT_GENERAL // layout + }; + + renderPassCreateInfo.addSubpass(SubpassDescription(VK_PIPELINE_BIND_POINT_GRAPHICS, // pipelineBindPoint + 0, // flags + 0, // inputCount + DE_NULL, // pInputAttachments + 1, // colorCount + &colorAttachmentReference, // pColorAttachments + DE_NULL, // pResolveAttachments + AttachmentReference(), // depthStencilAttachment + 0, // preserveCount + DE_NULL)); // preserveAttachments + + m_renderPass = createRenderPass(vkd, device, &renderPassCreateInfo); + + std::vector attachments(1); + attachments[0] = *m_attachmentView; + + FramebufferCreateInfo framebufferCreateInfo(*m_renderPass, attachments, m_size, m_size, 1); + m_framebuffer = createFramebuffer(vkd, device, &framebufferCreateInfo); + } + + // pipeline + { + Unique vs(createShaderModule(vkd, device, m_context.getBinaryCollection().get("vert"), 0)); + Unique fs(createShaderModule(vkd, device, m_context.getBinaryCollection().get("frag"), 0)); + + const PipelineCreateInfo::ColorBlendState::Attachment attachmentState; + + const PipelineLayoutCreateInfo pipelineLayoutCreateInfo; + m_pipelineLayout = createPipelineLayout(vkd, device, &pipelineLayoutCreateInfo); + + const VkVertexInputBindingDescription vf_binding_desc = + { + 0, // binding + 4 * (deUint32)sizeof(float), // stride + VK_VERTEX_INPUT_RATE_VERTEX // inputRate + }; + + const VkVertexInputAttributeDescription vf_attribute_desc = + { + 0, // location + 0, // binding + VK_FORMAT_R32G32B32A32_SFLOAT, // format + 0 // offset + }; + + const VkPipelineVertexInputStateCreateInfo vf_info = + { + VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // sType + NULL, // pNext + 0u, // flags + 1, // vertexBindingDescriptionCount + &vf_binding_desc, // pVertexBindingDescriptions + 1, // vertexAttributeDescriptionCount + &vf_attribute_desc // pVertexAttributeDescriptions + }; + + PipelineCreateInfo pipelineCreateInfo(*m_pipelineLayout, *m_renderPass, 0, 0); + pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*vs, "main", VK_SHADER_STAGE_VERTEX_BIT)); + pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*fs, "main", VK_SHADER_STAGE_FRAGMENT_BIT)); + pipelineCreateInfo.addState(PipelineCreateInfo::InputAssemblerState(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST)); + pipelineCreateInfo.addState(PipelineCreateInfo::ColorBlendState(1, &attachmentState)); + const VkViewport viewport = makeViewport(m_size, m_size); + const VkRect2D scissor = makeRect2D(m_size, m_size); + pipelineCreateInfo.addState(PipelineCreateInfo::ViewportState(1, std::vector(1, viewport), std::vector(1, scissor))); + pipelineCreateInfo.addState(PipelineCreateInfo::DepthStencilState(false, false, VK_COMPARE_OP_GREATER_OR_EQUAL)); + pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState()); + pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState()); + pipelineCreateInfo.addState(vf_info); + m_pipeline = createGraphicsPipeline(vkd, device, DE_NULL, &pipelineCreateInfo); + } + + // vertex buffer + { + std::vector vertices(3); + vertices[0] = tcu::Vec4(0.5, 0.5, 0.0, 1.0); + vertices[1] = tcu::Vec4(0.5, 0.0, 0.0, 1.0); + vertices[2] = tcu::Vec4(0.0, 0.5, 0.0, 1.0); + + const size_t kBufferSize = vertices.size() * sizeof(tcu::Vec4); + m_vertexBuffer = Buffer::createAndAlloc(vkd, device, BufferCreateInfo(kBufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), m_context.getDefaultAllocator(), MemoryRequirement::HostVisible); + + tcu::Vec4 *ptr = reinterpret_cast(m_vertexBuffer->getBoundMemory().getHostPtr()); + deMemcpy(ptr, &vertices[0], kBufferSize); + + flushMappedMemoryRange(vkd, device, m_vertexBuffer->getBoundMemory().getMemory(), m_vertexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE); + } +} + + +class GraphicQueryTest : public GraphicQueryTestBase +{ +public: + GraphicQueryTest (vkt::Context& context); + tcu::TestStatus iterate (void); +}; + +GraphicQueryTest::GraphicQueryTest(vkt::Context& context) + : GraphicQueryTestBase(context) +{ +} + +tcu::TestStatus GraphicQueryTest::iterate(void) +{ + const DeviceInterface& vkd = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + const VkQueue queue = m_context.getUniversalQueue(); + const CmdPoolCreateInfo cmdPoolCreateInfo = m_context.getUniversalQueueFamilyIndex(); + Unique cmdPool (createCommandPool(vkd, device, &cmdPoolCreateInfo)); + Unique cmdBuffer (allocateCommandBuffer(vkd, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY)); + + initStateObjects(); + setupCounters(); + + vk::Unique queryPool(createQueryPool(0, 1)); + + if (!acquireProfilingLock()) + { + // lock was not acquired in given time, we can't fail the test + return tcu::TestStatus::pass("Pass"); + } + + // begin command buffer + const VkCommandBufferBeginInfo commandBufBeginParams = + { + VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, + DE_NULL, + VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, + (const VkCommandBufferInheritanceInfo*)DE_NULL, + }; + VK_CHECK(vkd.beginCommandBuffer(*cmdBuffer, &commandBufBeginParams)); + + initialTransitionColor2DImage(vkd, *cmdBuffer, m_colorAttachmentImage->object(), VK_IMAGE_LAYOUT_GENERAL, + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + + // begin render pass + VkClearValue renderPassClearValue; + deMemset(&renderPassClearValue, 0, sizeof(VkClearValue)); + + // reset query pool + vkd.cmdResetQueryPool(*cmdBuffer, *queryPool, 0, 1); + + // perform query during triangle draw + vkd.cmdBeginQuery(*cmdBuffer, *queryPool, 0, VK_QUERY_CONTROL_PRECISE_BIT); + + beginRenderPass(vkd, *cmdBuffer, *m_renderPass, *m_framebuffer, + makeRect2D(0, 0, m_size, m_size), + 1, &renderPassClearValue); + + // bind pipeline + vkd.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline); + + // bind vertex buffer + VkBuffer vertexBuffer = m_vertexBuffer->object(); + const VkDeviceSize vertexBufferOffset = 0; + vkd.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &vertexBuffer, &vertexBufferOffset); + + vkd.cmdDraw(*cmdBuffer, 3, 1, 0, 0); + + endRenderPass(vkd, *cmdBuffer); + + vkd.cmdEndQuery(*cmdBuffer, *queryPool, 0); + + transition2DImage(vkd, *cmdBuffer, m_colorAttachmentImage->object(), VK_IMAGE_ASPECT_COLOR_BIT, + VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_TRANSFER_READ_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT); + + endCommandBuffer(vkd, *cmdBuffer); + + // submit command buffer for each pass and wait for its completion + for (deUint32 passIndex = 0; passIndex < getRequiredNumerOfPasses(); passIndex++) + { + const Unique fence(createFence(vkd, device)); + + VkPerformanceQuerySubmitInfoKHR performanceQuerySubmitInfo = + { + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR, + NULL, + passIndex + }; + + const VkSubmitInfo submitInfo = + { + VK_STRUCTURE_TYPE_SUBMIT_INFO, // sType + &performanceQuerySubmitInfo, // pNext + 0u, // waitSemaphoreCount + DE_NULL, // pWaitSemaphores + (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask + 1u, // commandBufferCount + &cmdBuffer.get(), // pCommandBuffers + 0u, // signalSemaphoreCount + DE_NULL, // pSignalSemaphores + }; + + VK_CHECK(vkd.queueSubmit(queue, 1u, &submitInfo, *fence)); + VK_CHECK(vkd.waitForFences(device, 1u, &fence.get(), DE_TRUE, ~0ull)); + } + + releaseProfilingLock(); + + VK_CHECK(vkd.resetCommandBuffer(*cmdBuffer, 0)); + + if (verifyQueryResults(*queryPool)) + return tcu::TestStatus::pass("Pass"); + return tcu::TestStatus::fail("Fail"); +} + +class GraphicMultiplePoolsTest : public GraphicQueryTestBase +{ +public: + GraphicMultiplePoolsTest (vkt::Context& context); + tcu::TestStatus iterate (void); +}; + +GraphicMultiplePoolsTest::GraphicMultiplePoolsTest(vkt::Context& context) + : GraphicQueryTestBase(context) +{ +} + +tcu::TestStatus GraphicMultiplePoolsTest::iterate(void) +{ + if (!m_context.getPerformanceCounterFeatures().performanceCounterMultipleQueryPools) + throw tcu::NotSupportedError("MultipleQueryPools not supported"); + + const DeviceInterface& vkd = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + const VkQueue queue = m_context.getUniversalQueue(); + const CmdPoolCreateInfo cmdPoolCreateInfo = m_context.getUniversalQueueFamilyIndex(); + Unique cmdPool (createCommandPool(vkd, device, &cmdPoolCreateInfo)); + Unique cmdBuffer (allocateCommandBuffer(vkd, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY)); + + initStateObjects(); + setupCounters(); + + vk::Unique queryPool1(createQueryPool(0, 2)), + queryPool2(createQueryPool(1, 2)); + + if (!acquireProfilingLock()) + { + // lock was not acquired in given time, we can't fail the test + return tcu::TestStatus::pass("Pass"); + } + + // begin command buffer + const VkCommandBufferBeginInfo commandBufBeginParams = + { + VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, + DE_NULL, + VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, + (const VkCommandBufferInheritanceInfo*)DE_NULL, + }; + VK_CHECK(vkd.beginCommandBuffer(*cmdBuffer, &commandBufBeginParams)); + + initialTransitionColor2DImage(vkd, *cmdBuffer, m_colorAttachmentImage->object(), VK_IMAGE_LAYOUT_GENERAL, + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + + // begin render pass + VkClearValue renderPassClearValue; + deMemset(&renderPassClearValue, 0, sizeof(VkClearValue)); + + VkBuffer vertexBuffer = m_vertexBuffer->object(); + const VkDeviceSize vertexBufferOffset = 0; + const VkQueryPool queryPools[] = + { + *queryPool1, + *queryPool2 + }; + + // reset query pools + vkd.cmdResetQueryPool(*cmdBuffer, queryPools[0], 0u, 1u); + vkd.cmdResetQueryPool(*cmdBuffer, queryPools[1], 0u, 1u); + + // perform two queries during triangle draw + for (deUint32 loop = 0; loop < DE_LENGTH_OF_ARRAY(queryPools); ++loop) + { + const VkQueryPool queryPool = queryPools[loop]; + vkd.cmdBeginQuery(*cmdBuffer, queryPool, 0u, (VkQueryControlFlags)0u); + beginRenderPass(vkd, *cmdBuffer, *m_renderPass, *m_framebuffer, + makeRect2D(0, 0, m_size, m_size), + 1, &renderPassClearValue); + + vkd.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline); + vkd.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &vertexBuffer, &vertexBufferOffset); + vkd.cmdDraw(*cmdBuffer, 3, 1, 0, 0); + + endRenderPass(vkd, *cmdBuffer); + vkd.cmdEndQuery(*cmdBuffer, queryPool, 0u); + } + + transition2DImage(vkd, *cmdBuffer, m_colorAttachmentImage->object(), VK_IMAGE_ASPECT_COLOR_BIT, + VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_TRANSFER_READ_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT); + + endCommandBuffer(vkd, *cmdBuffer); + + // submit command buffer for each pass and wait for its completion + for (deUint32 passIndex = 0; passIndex < getRequiredNumerOfPasses(); passIndex++) + { + const Unique fence(createFence(vkd, device)); + + VkPerformanceQuerySubmitInfoKHR performanceQuerySubmitInfo = + { + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR, + NULL, + passIndex + }; + + const VkSubmitInfo submitInfo = + { + VK_STRUCTURE_TYPE_SUBMIT_INFO, // sType + &performanceQuerySubmitInfo, // pNext + 0u, // waitSemaphoreCount + DE_NULL, // pWaitSemaphores + (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask + 1u, // commandBufferCount + &cmdBuffer.get(), // pCommandBuffers + 0u, // signalSemaphoreCount + DE_NULL, // pSignalSemaphores + }; + + VK_CHECK(vkd.queueSubmit(queue, 1u, &submitInfo, *fence)); + VK_CHECK(vkd.waitForFences(device, 1u, &fence.get(), DE_TRUE, ~0ull)); + } + + releaseProfilingLock(); + + VK_CHECK(vkd.resetCommandBuffer(*cmdBuffer, 0)); + + if (verifyQueryResults(*queryPool1) && verifyQueryResults(*queryPool2)) + return tcu::TestStatus::pass("Pass"); + return tcu::TestStatus::fail("Fail"); +} + +// Base class for all compute tests +class ComputeQueryTestBase : public QueryTestBase +{ +public: + ComputeQueryTestBase(vkt::Context& context); + +protected: + void initStateObjects(void); + +protected: + Move m_pipeline; + Move m_pipelineLayout; + de::SharedPtr m_buffer; + Move m_descriptorPool; + Move m_descriptorSet; + VkDescriptorBufferInfo m_descriptorBufferInfo; + VkBufferMemoryBarrier m_computeFinishBarrier; +}; + +ComputeQueryTestBase::ComputeQueryTestBase(vkt::Context& context) + : QueryTestBase(context) +{ +} + +void ComputeQueryTestBase::initStateObjects(void) +{ + const DeviceInterface& vkd = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + const VkDeviceSize bufferSize = 32 * sizeof(deUint32); + const CmdPoolCreateInfo cmdPoolCreateInfo(m_context.getUniversalQueueFamilyIndex()); + const Unique cmdPool(createCommandPool(vkd, device, &cmdPoolCreateInfo)); + const Unique cmdBuffer(allocateCommandBuffer(vkd, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY)); + + const Unique descriptorSetLayout(DescriptorSetLayoutBuilder() + .addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_SHADER_STAGE_COMPUTE_BIT) + .build(vkd, device)); + + // create pipeline layout + { + const VkPipelineLayoutCreateInfo pipelineLayoutParams = + { + VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, // sType + DE_NULL, // pNext + 0u, // flags + 1u, // setLayoutCount + &(*descriptorSetLayout), // pSetLayouts + 0u, // pushConstantRangeCount + DE_NULL, // pPushConstantRanges + }; + m_pipelineLayout = createPipelineLayout(vkd, device, &pipelineLayoutParams); + } + + // create compute pipeline + { + const Unique cs(createShaderModule(vkd, device, m_context.getBinaryCollection().get("comp"), 0u)); + const VkPipelineShaderStageCreateInfo pipelineShaderStageParams = + { + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // sType + DE_NULL, // pNext + (VkPipelineShaderStageCreateFlags)0u, // flags + VK_SHADER_STAGE_COMPUTE_BIT, // stage + *cs, // module + "main", // pName + DE_NULL, // pSpecializationInfo + }; + const VkComputePipelineCreateInfo pipelineCreateInfo = + { + VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, // sType + DE_NULL, // pNext + (VkPipelineCreateFlags)0u, // flags + pipelineShaderStageParams, // stage + *m_pipelineLayout, // layout + DE_NULL, // basePipelineHandle + 0, // basePipelineIndex + }; + m_pipeline = createComputePipeline(vkd, device, DE_NULL, &pipelineCreateInfo); + } + + m_buffer = Buffer::createAndAlloc(vkd, device, BufferCreateInfo(bufferSize, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), + m_context.getDefaultAllocator(), MemoryRequirement::HostVisible); + m_descriptorPool = DescriptorPoolBuilder() + .addType(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER) + .build(vkd, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u); + const VkDescriptorSetAllocateInfo allocateParams = + { + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, // sType + DE_NULL, // pNext + *m_descriptorPool, // descriptorPool + 1u, // setLayoutCount + &(*descriptorSetLayout), // pSetLayouts + }; + + m_descriptorSet = allocateDescriptorSet(vkd, device, &allocateParams); + const VkDescriptorBufferInfo descriptorInfo = + { + m_buffer->object(), // buffer + 0ull, // offset + bufferSize, // range + }; + + DescriptorSetUpdateBuilder() + .writeSingle(*m_descriptorSet, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &descriptorInfo) + .update(vkd, device); + + // clear buffer + const std::vector data((size_t)bufferSize, 0u); + const Allocation& allocation = m_buffer->getBoundMemory(); + void* allocationData = allocation.getHostPtr(); + invalidateMappedMemoryRange(vkd, device, allocation.getMemory(), allocation.getOffset(), bufferSize); + deMemcpy(allocationData, &data[0], (size_t)bufferSize); + + const VkBufferMemoryBarrier barrier = + { + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER, // sType + DE_NULL, // pNext + VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT, // srcAccessMask + VK_ACCESS_HOST_READ_BIT, // dstAccessMask + VK_QUEUE_FAMILY_IGNORED, // srcQueueFamilyIndex + VK_QUEUE_FAMILY_IGNORED, // destQueueFamilyIndex + m_buffer->object(), // buffer + 0ull, // offset + bufferSize, // size + }; + m_computeFinishBarrier = barrier; +} + +class ComputeQueryTest : public ComputeQueryTestBase +{ +public: + ComputeQueryTest (vkt::Context& context); + tcu::TestStatus iterate (void); +}; + +ComputeQueryTest::ComputeQueryTest(vkt::Context& context) + : ComputeQueryTestBase(context) +{ +} + +tcu::TestStatus ComputeQueryTest::iterate(void) +{ + const DeviceInterface& vkd = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + const VkQueue queue = m_context.getUniversalQueue(); + const CmdPoolCreateInfo cmdPoolCreateInfo (m_context.getUniversalQueueFamilyIndex()); + const Unique cmdPool (createCommandPool(vkd, device, &cmdPoolCreateInfo)); + const Unique cmdBuffer (allocateCommandBuffer(vkd, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY)); + + initStateObjects(); + setupCounters(); + + vk::Unique queryPool(createQueryPool(0, 1)); + + if (!acquireProfilingLock()) + { + // lock was not acquired in given time, we can't fail the test + return tcu::TestStatus::pass("Pass"); + } + + beginCommandBuffer(vkd, *cmdBuffer); + vkd.cmdResetQueryPool(*cmdBuffer, *queryPool, 0u, 1u); + + vkd.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, *m_pipeline); + vkd.cmdBindDescriptorSets(*cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, *m_pipelineLayout, 0u, 1u, &(m_descriptorSet.get()), 0u, DE_NULL); + + vkd.cmdBeginQuery(*cmdBuffer, *queryPool, 0u, (VkQueryControlFlags)0u); + vkd.cmdDispatch(*cmdBuffer, 2, 2, 2); + vkd.cmdEndQuery(*cmdBuffer, *queryPool, 0u); + + vkd.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_HOST_BIT, + (VkDependencyFlags)0u, 0u, (const VkMemoryBarrier*)DE_NULL, 1u, &m_computeFinishBarrier, 0u, (const VkImageMemoryBarrier*)DE_NULL); + endCommandBuffer(vkd, *cmdBuffer); + + // submit command buffer for each pass and wait for its completion + for (deUint32 passIndex = 0; passIndex < getRequiredNumerOfPasses(); passIndex++) + { + const Unique fence(createFence(vkd, device)); + + VkPerformanceQuerySubmitInfoKHR performanceQuerySubmitInfo = + { + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR, + NULL, + passIndex + }; + + const VkSubmitInfo submitInfo = + { + VK_STRUCTURE_TYPE_SUBMIT_INFO, // sType + &performanceQuerySubmitInfo, // pNext + 0u, // waitSemaphoreCount + DE_NULL, // pWaitSemaphores + (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask + 1u, // commandBufferCount + &cmdBuffer.get(), // pCommandBuffers + 0u, // signalSemaphoreCount + DE_NULL, // pSignalSemaphores + }; + + VK_CHECK(vkd.queueSubmit(queue, 1u, &submitInfo, *fence)); + VK_CHECK(vkd.waitForFences(device, 1u, &fence.get(), DE_TRUE, ~0ull)); + } + + releaseProfilingLock(); + + VK_CHECK(vkd.resetCommandBuffer(*cmdBuffer, 0)); + + if (verifyQueryResults(*queryPool)) + return tcu::TestStatus::pass("Pass"); + return tcu::TestStatus::fail("Fail"); +} + +class ComputeMultiplePoolsTest : public ComputeQueryTestBase +{ +public: + ComputeMultiplePoolsTest (vkt::Context& context); + tcu::TestStatus iterate (void); +}; + +ComputeMultiplePoolsTest::ComputeMultiplePoolsTest(vkt::Context& context) + : ComputeQueryTestBase(context) +{ +} + +tcu::TestStatus ComputeMultiplePoolsTest::iterate(void) +{ + if (!m_context.getPerformanceCounterFeatures().performanceCounterMultipleQueryPools) + throw tcu::NotSupportedError("MultipleQueryPools not supported"); + + const DeviceInterface& vkd = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + const VkQueue queue = m_context.getUniversalQueue(); + const CmdPoolCreateInfo cmdPoolCreateInfo(m_context.getUniversalQueueFamilyIndex()); + const Unique cmdPool(createCommandPool(vkd, device, &cmdPoolCreateInfo)); + const Unique cmdBuffer(allocateCommandBuffer(vkd, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY)); + + initStateObjects(); + setupCounters(); + + vk::Unique queryPool1(createQueryPool(0, 2)), + queryPool2(createQueryPool(1, 2)); + + if (!acquireProfilingLock()) + { + // lock was not acquired in given time, we can't fail the test + return tcu::TestStatus::pass("Pass"); + } + + const VkQueryPool queryPools[] = + { + *queryPool1, + *queryPool2 + }; + + beginCommandBuffer(vkd, *cmdBuffer); + vkd.cmdResetQueryPool(*cmdBuffer, queryPools[0], 0u, 1u); + vkd.cmdResetQueryPool(*cmdBuffer, queryPools[1], 0u, 1u); + + vkd.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, *m_pipeline); + vkd.cmdBindDescriptorSets(*cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, *m_pipelineLayout, 0u, 1u, &(m_descriptorSet.get()), 0u, DE_NULL); + + // perform two queries + for (deUint32 loop = 0; loop < DE_LENGTH_OF_ARRAY(queryPools); ++loop) + { + const VkQueryPool queryPool = queryPools[loop]; + vkd.cmdBeginQuery(*cmdBuffer, queryPool, 0u, (VkQueryControlFlags)0u); + vkd.cmdDispatch(*cmdBuffer, 2, 2, 2); + vkd.cmdEndQuery(*cmdBuffer, queryPool, 0u); + } + + vkd.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_HOST_BIT, + (VkDependencyFlags)0u, 0u, (const VkMemoryBarrier*)DE_NULL, 1u, &m_computeFinishBarrier, 0u, (const VkImageMemoryBarrier*)DE_NULL); + endCommandBuffer(vkd, *cmdBuffer); + + // submit command buffer for each pass and wait for its completion + for (deUint32 passIndex = 0; passIndex < getRequiredNumerOfPasses(); passIndex++) + { + const Unique fence(createFence(vkd, device)); + + VkPerformanceQuerySubmitInfoKHR performanceQuerySubmitInfo = + { + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR, + NULL, + passIndex + }; + + const VkSubmitInfo submitInfo = + { + VK_STRUCTURE_TYPE_SUBMIT_INFO, // sType + &performanceQuerySubmitInfo, // pNext + 0u, // waitSemaphoreCount + DE_NULL, // pWaitSemaphores + (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask + 1u, // commandBufferCount + &cmdBuffer.get(), // pCommandBuffers + 0u, // signalSemaphoreCount + DE_NULL, // pSignalSemaphores + }; + + VK_CHECK(vkd.queueSubmit(queue, 1u, &submitInfo, *fence)); + VK_CHECK(vkd.waitForFences(device, 1u, &fence.get(), DE_TRUE, ~0ull)); + } + + releaseProfilingLock(); + + VK_CHECK(vkd.resetCommandBuffer(*cmdBuffer, 0)); + + if (verifyQueryResults(*queryPool1) && verifyQueryResults(*queryPool2)) + return tcu::TestStatus::pass("Pass"); + return tcu::TestStatus::fail("Fail"); +} + +enum TestType +{ + TT_ENUMERATE_AND_VALIDATE = 0, + TT_QUERY, + TT_MULTIPLE_POOLS +}; + +class QueryPoolPerformanceTest : public TestCase +{ +public: + QueryPoolPerformanceTest (tcu::TestContext &context, TestType testType, VkQueueFlagBits queueFlagBits, const char *name) + : TestCase (context, name, "") + , m_testType (testType) + , m_queueFlagBits (queueFlagBits) + { + } + + vkt::TestInstance* createInstance (vkt::Context& context) const + { + if (m_testType == TT_ENUMERATE_AND_VALIDATE) + return new EnumerateAndValidateTest(context, m_queueFlagBits); + + if (m_queueFlagBits == VK_QUEUE_GRAPHICS_BIT) + { + if (m_testType == TT_QUERY) + return new GraphicQueryTest(context); + return new GraphicMultiplePoolsTest(context); + } + + // tests for VK_QUEUE_COMPUTE_BIT + if (m_testType == TT_QUERY) + return new ComputeQueryTest(context); + return new ComputeMultiplePoolsTest(context); + } + + void initPrograms (SourceCollections& programCollection) const + { + // validation test do not need programs + if (m_testType == TT_ENUMERATE_AND_VALIDATE) + return; + + if (m_queueFlagBits == VK_QUEUE_COMPUTE_BIT) + { + programCollection.glslSources.add("comp") + << glu::ComputeSource("#version 430\n" + "layout (local_size_x = 1) in;\n" + "layout(binding = 0) writeonly buffer Output {\n" + " uint values[];\n" + "} sb_out;\n\n" + "void main (void) {\n" + " uint index = uint(gl_GlobalInvocationID.x);\n" + " sb_out.values[index] += gl_GlobalInvocationID.y*2;\n" + "}\n"); + return; + } + + programCollection.glslSources.add("frag") + << glu::FragmentSource("#version 430\n" + "layout(location = 0) out vec4 out_FragColor;\n" + "void main()\n" + "{\n" + " out_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n" + "}\n"); + + programCollection.glslSources.add("vert") + << glu::VertexSource("#version 430\n" + "layout(location = 0) in vec4 in_Position;\n" + "out gl_PerVertex { vec4 gl_Position; float gl_PointSize; };\n" + "void main() {\n" + " gl_Position = in_Position;\n" + " gl_PointSize = 1.0;\n" + "}\n"); + } + +private: + + TestType m_testType; + VkQueueFlagBits m_queueFlagBits; +}; + +} //anonymous + +QueryPoolPerformanceTests::QueryPoolPerformanceTests (tcu::TestContext &testCtx) + : TestCaseGroup(testCtx, "performance_query", "Tests for performance queries") +{ +} + +void QueryPoolPerformanceTests::init (void) +{ + addChild(new QueryPoolPerformanceTest(m_testCtx, TT_ENUMERATE_AND_VALIDATE, VK_QUEUE_GRAPHICS_BIT, "enumerate_and_validate_graphic")); + addChild(new QueryPoolPerformanceTest(m_testCtx, TT_ENUMERATE_AND_VALIDATE, VK_QUEUE_COMPUTE_BIT, "enumerate_and_validate_compute")); + addChild(new QueryPoolPerformanceTest(m_testCtx, TT_QUERY, VK_QUEUE_GRAPHICS_BIT, "query_graphic")); + addChild(new QueryPoolPerformanceTest(m_testCtx, TT_QUERY, VK_QUEUE_COMPUTE_BIT, "query_compute")); + addChild(new QueryPoolPerformanceTest(m_testCtx, TT_MULTIPLE_POOLS, VK_QUEUE_GRAPHICS_BIT, "multiple_pools_graphic")); + addChild(new QueryPoolPerformanceTest(m_testCtx, TT_MULTIPLE_POOLS, VK_QUEUE_COMPUTE_BIT, "multiple_pools_compute")); +} + +} //QueryPool +} //vkt + diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.hpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.hpp new file mode 100644 index 0000000..4b5901f --- /dev/null +++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.hpp @@ -0,0 +1,48 @@ +#ifndef _VKTQUERYPOOLPERFORMANCETESTS_HPP +#define _VKTQUERYPOOLPERFORMANCETESTS_HPP +/*------------------------------------------------------------------------ + * Vulkan Conformance Tests + * ------------------------ + * + * Copyright (c) 2018 The Khronos Group Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *//*! + * \file + * \brief Vulkan Performance Query Tests + *//*--------------------------------------------------------------------*/ + +#include "vktTestCase.hpp" + +namespace vkt +{ +namespace QueryPool +{ + +class QueryPoolPerformanceTests : public tcu::TestCaseGroup +{ +public: + QueryPoolPerformanceTests (tcu::TestContext &testCtx); + ~QueryPoolPerformanceTests (void) {} + void init (void); + +private: + QueryPoolPerformanceTests (const QueryPoolPerformanceTests &other); + QueryPoolPerformanceTests& operator= (const QueryPoolPerformanceTests &other); +}; + +} // QueryPool +} // vkt + +#endif // _VKTQUERYPOOLPERFORMANCETESTS_HPP diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolTests.cpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolTests.cpp index 8bca5c8..4ba8cd2 100644 --- a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolTests.cpp +++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolTests.cpp @@ -27,6 +27,7 @@ #include "vktTestGroupUtil.hpp" #include "vktQueryPoolOcclusionTests.hpp" #include "vktQueryPoolStatisticsTests.hpp" +#include "vktQueryPoolPerformanceTests.hpp" namespace vkt { @@ -42,6 +43,7 @@ void createChildren (tcu::TestCaseGroup* queryPoolTests) queryPoolTests->addChild(new QueryPoolOcclusionTests(testCtx)); queryPoolTests->addChild(new QueryPoolStatisticsTests(testCtx)); + queryPoolTests->addChild(new QueryPoolPerformanceTests(testCtx)); } } // anonymous diff --git a/external/vulkancts/modules/vulkan/vktTestCase.cpp b/external/vulkancts/modules/vulkan/vktTestCase.cpp index b6b3917..ab17ca9 100644 --- a/external/vulkancts/modules/vulkan/vktTestCase.cpp +++ b/external/vulkancts/modules/vulkan/vktTestCase.cpp @@ -328,6 +328,7 @@ public: VkPhysicalDeviceImagelessFramebufferFeaturesKHR imagelessFramebufferFeatures; VkPhysicalDeviceCooperativeMatrixFeaturesNV cooperativeMatrixFeatures; VkPhysicalDeviceHostQueryResetFeaturesEXT hostQueryResetFeatures; + VkPhysicalDevicePerformanceCounterFeaturesKHR performanceCounterFeatures; DeviceFeatures (const InstanceInterface& vki, const deUint32 apiVersion, @@ -356,6 +357,7 @@ public: deMemset(&imagelessFramebufferFeatures, 0, sizeof(imagelessFramebufferFeatures)); deMemset(&cooperativeMatrixFeatures, 0, sizeof(cooperativeMatrixFeatures)); deMemset(&hostQueryResetFeatures, 0, sizeof(hostQueryResetFeatures)); + deMemset(&performanceCounterFeatures, 0, sizeof(performanceCounterFeatures)); coreFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; samplerYCbCrConversionFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES; @@ -378,6 +380,7 @@ public: imagelessFramebufferFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR; cooperativeMatrixFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV; hostQueryResetFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT; + performanceCounterFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_FEATURES_KHR; vector deviceExtensionProperties = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL); @@ -456,10 +459,15 @@ public: *nextPtr = &scalarBlockLayoutFeatures; nextPtr = &scalarBlockLayoutFeatures.pNext; } - if (de::contains(deviceExtensions.begin(), deviceExtensions.end(), "VK_EXT_depth_clip_enable")) + if (de::contains(deviceExtensions.begin(), deviceExtensions.end(), "VK_EXT_depth_clip_enable")) + { + *nextPtr = &depthClipEnableFeatures; + nextPtr = &depthClipEnableFeatures.pNext; + } + if (de::contains(deviceExtensions.begin(), deviceExtensions.end(), "VK_KHR_performance_query")) { - *nextPtr = &depthClipEnableFeatures; - nextPtr = &depthClipEnableFeatures.pNext; + *nextPtr = &performanceCounterFeatures; + nextPtr = &performanceCounterFeatures.pNext; } if (de::contains(deviceExtensions.begin(), deviceExtensions.end(), "VK_KHR_uniform_buffer_standard_layout")) { @@ -533,9 +541,9 @@ public: const VkPhysicalDeviceDepthClipEnableFeaturesEXT& getDepthClipEnableFeatures (void) const { return m_deviceFeatures.depthClipEnableFeatures; } const VkPhysicalDeviceBufferAddressFeaturesEXT& getBufferDeviceAddressFeatures (void) const { return m_deviceFeatures.bufferDeviceAddressFeatures; } const VkPhysicalDeviceImagelessFramebufferFeaturesKHR& getImagelessFramebufferFeatures (void) const { return m_deviceFeatures.imagelessFramebufferFeatures; } - const VkPhysicalDeviceCooperativeMatrixFeaturesNV& getCooperativeMatrixFeatures (void) const { return m_deviceFeatures.cooperativeMatrixFeatures; } const VkPhysicalDeviceHostQueryResetFeaturesEXT& getHostQueryResetFeatures (void) const { return m_deviceFeatures.hostQueryResetFeatures; } + const VkPhysicalDevicePerformanceCounterFeaturesKHR& getPerformanceCounterFeatures (void) const { return m_deviceFeatures.performanceCounterFeatures; } VkDevice getDevice (void) const { return *m_device; } const DeviceInterface& getDeviceInterface (void) const { return m_deviceInterface; } const VkPhysicalDeviceProperties& getDeviceProperties (void) const { return m_deviceProperties; } @@ -691,6 +699,8 @@ const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV& Context::getCooperativeMatrixFeatures (void) const { return m_device->getCooperativeMatrixFeatures(); } const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT& Context::getHostQueryResetFeatures (void) const { return m_device->getHostQueryResetFeatures(); } +const vk::VkPhysicalDevicePerformanceCounterFeaturesKHR& + Context::getPerformanceCounterFeatures (void) const { return m_device->getPerformanceCounterFeatures(); } const vk::VkPhysicalDeviceProperties& Context::getDeviceProperties (void) const { return m_device->getDeviceProperties(); } const vector& Context::getDeviceExtensions (void) const { return m_device->getDeviceExtensions(); } vk::VkDevice Context::getDevice (void) const { return m_device->getDevice(); } diff --git a/external/vulkancts/modules/vulkan/vktTestCase.hpp b/external/vulkancts/modules/vulkan/vktTestCase.hpp index d39166e..471cbf9 100644 --- a/external/vulkancts/modules/vulkan/vktTestCase.hpp +++ b/external/vulkancts/modules/vulkan/vktTestCase.hpp @@ -102,6 +102,8 @@ public: getCooperativeMatrixFeatures (void) const; const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT& getHostQueryResetFeatures (void) const; + const vk::VkPhysicalDevicePerformanceCounterFeaturesKHR& + getPerformanceCounterFeatures (void) const; const vk::VkPhysicalDeviceProperties& getDeviceProperties (void) const; const std::vector& getDeviceExtensions (void) const; vk::VkDevice getDevice (void) const; diff --git a/external/vulkancts/mustpass/1.1.5/vk-default-no-waivers.txt b/external/vulkancts/mustpass/1.1.5/vk-default-no-waivers.txt index 241ceee..e07e655 100644 --- a/external/vulkancts/mustpass/1.1.5/vk-default-no-waivers.txt +++ b/external/vulkancts/mustpass/1.1.5/vk-default-no-waivers.txt @@ -312092,6 +312092,12 @@ dEQP-VK.query_pool.statistics_query.host_query_reset.tes_control_patches.tes_con dEQP-VK.query_pool.statistics_query.host_query_reset.tes_evaluation_shader_invocations.tes_evaluation_shader_invocations dEQP-VK.query_pool.statistics_query.host_query_reset.tes_evaluation_shader_invocations.tes_evaluation_shader_invocations_secondary dEQP-VK.query_pool.statistics_query.host_query_reset.tes_evaluation_shader_invocations.tes_evaluation_shader_invocations_secondary_inherited +dEQP-VK.query_pool.performance_query.enumerate_and_validate_graphic +dEQP-VK.query_pool.performance_query.enumerate_and_validate_compute +dEQP-VK.query_pool.performance_query.query_graphic +dEQP-VK.query_pool.performance_query.query_compute +dEQP-VK.query_pool.performance_query.multiple_pools_graphic +dEQP-VK.query_pool.performance_query.multiple_pools_compute dEQP-VK.draw.simple_draw.simple_draw_triangle_list dEQP-VK.draw.simple_draw.simple_draw_triangle_strip dEQP-VK.draw.simple_draw.simple_draw_instanced_triangle_list diff --git a/external/vulkancts/mustpass/1.1.5/vk-default.txt b/external/vulkancts/mustpass/1.1.5/vk-default.txt index 7590d7e..6164fb5 100644 --- a/external/vulkancts/mustpass/1.1.5/vk-default.txt +++ b/external/vulkancts/mustpass/1.1.5/vk-default.txt @@ -312054,6 +312054,12 @@ dEQP-VK.query_pool.statistics_query.host_query_reset.tes_control_patches.tes_con dEQP-VK.query_pool.statistics_query.host_query_reset.tes_evaluation_shader_invocations.tes_evaluation_shader_invocations dEQP-VK.query_pool.statistics_query.host_query_reset.tes_evaluation_shader_invocations.tes_evaluation_shader_invocations_secondary dEQP-VK.query_pool.statistics_query.host_query_reset.tes_evaluation_shader_invocations.tes_evaluation_shader_invocations_secondary_inherited +dEQP-VK.query_pool.performance_query.enumerate_and_validate_graphic +dEQP-VK.query_pool.performance_query.enumerate_and_validate_compute +dEQP-VK.query_pool.performance_query.query_graphic +dEQP-VK.query_pool.performance_query.query_compute +dEQP-VK.query_pool.performance_query.multiple_pools_graphic +dEQP-VK.query_pool.performance_query.multiple_pools_compute dEQP-VK.draw.simple_draw.simple_draw_triangle_list dEQP-VK.draw.simple_draw.simple_draw_triangle_strip dEQP-VK.draw.simple_draw.simple_draw_instanced_triangle_list diff --git a/external/vulkancts/scripts/src/vulkan.h.in b/external/vulkancts/scripts/src/vulkan.h.in index ee9288a..097eeb5 100755 --- a/external/vulkancts/scripts/src/vulkan.h.in +++ b/external/vulkancts/scripts/src/vulkan.h.in @@ -359,6 +359,13 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_FEATURES_KHR = 1000116000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_PROPERTIES_KHR = 1000116001, + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_CREATE_INFO_KHR = 1000116002, + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003, + VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, @@ -722,6 +729,7 @@ typedef enum VkQueryType { VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, + VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), @@ -5958,6 +5966,149 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( int* pFd); #endif +#define VK_KHR_performance_query 1 +#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1 +#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query" + + +typedef enum VkPerformanceCounterUnitKHR { + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0, + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1, + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2, + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3, + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4, + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5, + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6, + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7, + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8, + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9, + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10, + VK_PERFORMANCE_COUNTER_UNIT_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR, + VK_PERFORMANCE_COUNTER_UNIT_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR, + VK_PERFORMANCE_COUNTER_UNIT_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR + 1), + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterUnitKHR; + +typedef enum VkPerformanceCounterScopeKHR { + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0, + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1, + VK_QUERY_SCOPE_COMMAND_KHR = 2, + VK_PERFORMANCE_COUNTER_SCOPE_BEGIN_RANGE_KHR = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR, + VK_PERFORMANCE_COUNTER_SCOPE_END_RANGE_KHR = VK_QUERY_SCOPE_COMMAND_KHR, + VK_PERFORMANCE_COUNTER_SCOPE_RANGE_SIZE_KHR = (VK_QUERY_SCOPE_COMMAND_KHR - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR + 1), + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterScopeKHR; + +typedef enum VkPerformanceCounterStorageKHR { + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0, + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1, + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2, + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3, + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4, + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5, + VK_PERFORMANCE_COUNTER_STORAGE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR, + VK_PERFORMANCE_COUNTER_STORAGE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR, + VK_PERFORMANCE_COUNTER_STORAGE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR + 1), + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterStorageKHR; + + +typedef enum VkPerformanceCounterDescriptionFlagBitsKHR { + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 0x00000001, + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 0x00000002, + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterDescriptionFlagBitsKHR; +typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; +typedef VkFlags VkAcquireProfilingLockFlagsKHR; + +typedef struct VkPhysicalDevicePerformanceCounterFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 performanceCounterQueryPools; + VkBool32 performanceCounterMultipleQueryPools; +} VkPhysicalDevicePerformanceCounterFeaturesKHR; + +typedef struct VkPhysicalDevicePerformanceCounterPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 allowCommandBufferQueryCopies; +} VkPhysicalDevicePerformanceCounterPropertiesKHR; + +typedef struct VkPerformanceCounterKHR { + VkStructureType sType; + const void* pNext; + VkPerformanceCounterUnitKHR unit; + VkPerformanceCounterScopeKHR scope; + VkPerformanceCounterStorageKHR storage; + uint8_t uuid[VK_UUID_SIZE]; +} VkPerformanceCounterKHR; + +typedef struct VkPerformanceCounterDescriptionKHR { + VkStructureType sType; + const void* pNext; + VkPerformanceCounterDescriptionFlagsKHR flags; + char name[VK_MAX_DESCRIPTION_SIZE]; + char category[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; +} VkPerformanceCounterDescriptionKHR; + +typedef struct VkPerformanceQueryCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t queueFamilyIndex; + uint32_t counterIndexCount; + const uint32_t* pCounterIndices; +} VkPerformanceQueryCreateInfoKHR; + +typedef union VkPerformanceCounterResultKHR { + int32_t int32; + int64_t int64; + uint32_t uint32; + uint64_t uint64; + float float32; + double float64; +} VkPerformanceCounterResultKHR; + +typedef struct VkAcquireProfilingLockInfoKHR { + VkStructureType sType; + const void* pNext; + VkAcquireProfilingLockFlagsKHR flags; + uint64_t timeout; +} VkAcquireProfilingLockInfoKHR; + +typedef struct VkPerformanceQuerySubmitInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t counterPassIndex; +} VkPerformanceQuerySubmitInfoKHR; + + +typedef void (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkPerformanceQueryCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + uint32_t* pCounterCount, + VkPerformanceCounterKHR* pCounters, + VkPerformanceCounterDescriptionKHR* pCounterDescriptions); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + VkPhysicalDevice physicalDevice, + const VkPerformanceQueryCreateInfoKHR* pPerformanceQueryCreateInfo, + uint32_t* pNumPasses); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR( + VkDevice device, + const VkAcquireProfilingLockInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR( + VkDevice device); +#endif + #define VK_KHR_maintenance2 1 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; -- 2.7.4