Update Vulkan framework to API 1.0.5
authorPyry Haulos <phaulos@google.com>
Tue, 16 Feb 2016 10:05:17 +0000 (12:05 +0200)
committerPyry Haulos <phaulos@google.com>
Tue, 5 Apr 2016 22:28:19 +0000 (15:28 -0700)
Change-Id: I4e469b9384701303f96826c25a51e623316719dc
(cherry picked from commit 931d1df9bc5ac16200e2e63dfce17dcbbbb35d36)

18 files changed:
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
external/vulkancts/framework/vulkan/vkDefs.hpp
external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
external/vulkancts/framework/vulkan/vkHandleType.inl
external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkNullDriver.cpp
external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
external/vulkancts/framework/vulkan/vkRef.hpp
external/vulkancts/framework/vulkan/vkRefUtil.inl
external/vulkancts/framework/vulkan/vkRefUtilImpl.inl
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
external/vulkancts/gen_framework.py

index dd8ecf6..ff28762 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-enum { VK_API_VERSION                                  = VK_MAKE_VERSION(1, 0, 0)      };
+enum { VK_API_VERSION                                  = VK_MAKE_VERSION(1, 0, 5)      };
 enum { VK_MAX_PHYSICAL_DEVICE_NAME_SIZE        = 256                                           };
 enum { VK_MAX_EXTENSION_NAME_SIZE              = 256                                           };
 enum { VK_UUID_SIZE                                            = 16                                            };
@@ -10,35 +10,36 @@ enum { VK_MAX_MEMORY_HEAPS                          = 16                                            };
 enum { VK_MAX_DESCRIPTION_SIZE                 = 256                                           };
 enum { VK_ATTACHMENT_UNUSED                            = (~0U)                                         };
 
-VK_DEFINE_HANDLE                                       (VkInstance,                    HANDLE_TYPE_INSTANCE);
-VK_DEFINE_HANDLE                                       (VkPhysicalDevice,              HANDLE_TYPE_PHYSICAL_DEVICE);
-VK_DEFINE_HANDLE                                       (VkDevice,                              HANDLE_TYPE_DEVICE);
-VK_DEFINE_HANDLE                                       (VkQueue,                               HANDLE_TYPE_QUEUE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSemaphore,                   HANDLE_TYPE_SEMAPHORE);
-VK_DEFINE_HANDLE                                       (VkCommandBuffer,               HANDLE_TYPE_COMMAND_BUFFER);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkFence,                               HANDLE_TYPE_FENCE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDeviceMemory,                HANDLE_TYPE_DEVICE_MEMORY);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkBuffer,                              HANDLE_TYPE_BUFFER);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkImage,                               HANDLE_TYPE_IMAGE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkEvent,                               HANDLE_TYPE_EVENT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkQueryPool,                   HANDLE_TYPE_QUERY_POOL);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkBufferView,                  HANDLE_TYPE_BUFFER_VIEW);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkImageView,                   HANDLE_TYPE_IMAGE_VIEW);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkShaderModule,                HANDLE_TYPE_SHADER_MODULE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipelineCache,               HANDLE_TYPE_PIPELINE_CACHE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipelineLayout,              HANDLE_TYPE_PIPELINE_LAYOUT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkRenderPass,                  HANDLE_TYPE_RENDER_PASS);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipeline,                    HANDLE_TYPE_PIPELINE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorSetLayout, HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSampler,                             HANDLE_TYPE_SAMPLER);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorPool,              HANDLE_TYPE_DESCRIPTOR_POOL);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorSet,               HANDLE_TYPE_DESCRIPTOR_SET);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkFramebuffer,                 HANDLE_TYPE_FRAMEBUFFER);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkCommandPool,                 HANDLE_TYPE_COMMAND_POOL);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSurfaceKHR,                  HANDLE_TYPE_SURFACE_KHR);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSwapchainKHR,                HANDLE_TYPE_SWAPCHAIN_KHR);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDisplayKHR,                  HANDLE_TYPE_DISPLAY_KHR);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDisplayModeKHR,              HANDLE_TYPE_DISPLAY_MODE_KHR);
+VK_DEFINE_HANDLE                                       (VkInstance,                            HANDLE_TYPE_INSTANCE);
+VK_DEFINE_HANDLE                                       (VkPhysicalDevice,                      HANDLE_TYPE_PHYSICAL_DEVICE);
+VK_DEFINE_HANDLE                                       (VkDevice,                                      HANDLE_TYPE_DEVICE);
+VK_DEFINE_HANDLE                                       (VkQueue,                                       HANDLE_TYPE_QUEUE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSemaphore,                           HANDLE_TYPE_SEMAPHORE);
+VK_DEFINE_HANDLE                                       (VkCommandBuffer,                       HANDLE_TYPE_COMMAND_BUFFER);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkFence,                                       HANDLE_TYPE_FENCE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDeviceMemory,                        HANDLE_TYPE_DEVICE_MEMORY);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkBuffer,                                      HANDLE_TYPE_BUFFER);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkImage,                                       HANDLE_TYPE_IMAGE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkEvent,                                       HANDLE_TYPE_EVENT);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkQueryPool,                           HANDLE_TYPE_QUERY_POOL);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkBufferView,                          HANDLE_TYPE_BUFFER_VIEW);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkImageView,                           HANDLE_TYPE_IMAGE_VIEW);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkShaderModule,                        HANDLE_TYPE_SHADER_MODULE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipelineCache,                       HANDLE_TYPE_PIPELINE_CACHE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipelineLayout,                      HANDLE_TYPE_PIPELINE_LAYOUT);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkRenderPass,                          HANDLE_TYPE_RENDER_PASS);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipeline,                            HANDLE_TYPE_PIPELINE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorSetLayout,         HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSampler,                                     HANDLE_TYPE_SAMPLER);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorPool,                      HANDLE_TYPE_DESCRIPTOR_POOL);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorSet,                       HANDLE_TYPE_DESCRIPTOR_SET);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkFramebuffer,                         HANDLE_TYPE_FRAMEBUFFER);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkCommandPool,                         HANDLE_TYPE_COMMAND_POOL);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSurfaceKHR,                          HANDLE_TYPE_SURFACE_KHR);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSwapchainKHR,                        HANDLE_TYPE_SWAPCHAIN_KHR);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDisplayKHR,                          HANDLE_TYPE_DISPLAY_KHR);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDisplayModeKHR,                      HANDLE_TYPE_DISPLAY_MODE_KHR);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDebugReportCallbackEXT,      HANDLE_TYPE_DEBUG_REPORT_CALLBACK_EXT);
 
 enum VkPipelineCacheHeaderVersion
 {
@@ -65,11 +66,12 @@ enum VkResult
        VK_ERROR_TOO_MANY_OBJECTS                       = -10,
        VK_ERROR_FORMAT_NOT_SUPPORTED           = -11,
        VK_ERROR_SURFACE_LOST_KHR                       = -1000000000,
+       VK_ERROR_NATIVE_WINDOW_IN_USE_KHR       = -1000000001,
        VK_SUBOPTIMAL_KHR                                       = 1000001003,
        VK_ERROR_OUT_OF_DATE_KHR                        = -1000001004,
        VK_ERROR_INCOMPATIBLE_DISPLAY_KHR       = -1000003001,
-       VK_ERROR_NATIVE_WINDOW_IN_USE_KHR       = -1000008000,
        VK_ERROR_VALIDATION_FAILED_EXT          = -1000011001,
+       VK_ERROR_INVALID_SHADER_NV                      = -1000012000,
 };
 
 enum VkStructureType
@@ -134,7 +136,7 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR                           = 1000007000,
        VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR                       = 1000008000,
        VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR                         = 1000009000,
-       VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT                          = 1000011000,
+       VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT         = 1000011000,
 };
 
 enum VkSystemAllocationScope
@@ -696,6 +698,49 @@ enum VkPresentModeKHR
        VK_PRESENT_MODE_K_H_R_LAST
 };
 
+enum VkDebugReportObjectTypeEXT
+{
+       VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT                                 = 0,
+       VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT                                = 1,
+       VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT                 = 2,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT                                  = 3,
+       VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT                                   = 4,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT                               = 5,
+       VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT                  = 6,
+       VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT                                   = 7,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT                   = 8,
+       VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT                                  = 9,
+       VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT                                   = 10,
+       VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT                                   = 11,
+       VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT                              = 12,
+       VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT                             = 13,
+       VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT                              = 14,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT                   = 15,
+       VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT                  = 16,
+       VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT                 = 17,
+       VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT                             = 18,
+       VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT                                = 19,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT   = 20,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT                                 = 21,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT                 = 22,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT                  = 23,
+       VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT                             = 24,
+       VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT                    = 25,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT                             = 26,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT                   = 27,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT                    = 28,
+
+       VK_DEBUG_REPORT_OBJECT_TYPE_E_X_T_LAST
+};
+
+enum VkDebugReportErrorEXT
+{
+       VK_DEBUG_REPORT_ERROR_NONE_EXT                  = 0,
+       VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT  = 1,
+
+       VK_DEBUG_REPORT_ERROR_E_X_T_LAST
+};
+
 enum VkFormatFeatureFlagBits
 {
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT                                     = 0x00000001,
@@ -710,6 +755,7 @@ enum VkFormatFeatureFlagBits
        VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT          = 0x00000200,
        VK_FORMAT_FEATURE_BLIT_SRC_BIT                                          = 0x00000400,
        VK_FORMAT_FEATURE_BLIT_DST_BIT                                          = 0x00000800,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT       = 0x00001000,
 };
 typedef deUint32 VkFormatFeatureFlags;
 
@@ -887,7 +933,7 @@ enum VkShaderStageFlagBits
        VK_SHADER_STAGE_GEOMETRY_BIT                            = 0x00000008,
        VK_SHADER_STAGE_FRAGMENT_BIT                            = 0x00000010,
        VK_SHADER_STAGE_COMPUTE_BIT                                     = 0x00000020,
-       VK_SHADER_STAGE_ALL_GRAPHICS                            = 0x1F,
+       VK_SHADER_STAGE_ALL_GRAPHICS                            = 0x0000001F,
        VK_SHADER_STAGE_ALL                                                     = 0x7FFFFFFF,
 };
 typedef deUint32 VkShaderStageFlags;
@@ -897,7 +943,7 @@ enum VkCullModeFlagBits
        VK_CULL_MODE_NONE                       = 0,
        VK_CULL_MODE_FRONT_BIT          = 0x00000001,
        VK_CULL_MODE_BACK_BIT           = 0x00000002,
-       VK_CULL_MODE_FRONT_AND_BACK     = 0x3,
+       VK_CULL_MODE_FRONT_AND_BACK     = 0x00000003,
 };
 typedef deUint32 VkCullModeFlags;
 
@@ -987,7 +1033,7 @@ enum VkStencilFaceFlagBits
 {
        VK_STENCIL_FACE_FRONT_BIT       = 0x00000001,
        VK_STENCIL_FACE_BACK_BIT        = 0x00000002,
-       VK_STENCIL_FRONT_AND_BACK       = 0x3,
+       VK_STENCIL_FRONT_AND_BACK       = 0x00000003,
 };
 typedef deUint32 VkStencilFaceFlags;
 
@@ -1023,6 +1069,16 @@ enum VkDisplayPlaneAlphaFlagBitsKHR
 };
 typedef deUint32 VkDisplayPlaneAlphaFlagsKHR;
 
+enum VkDebugReportFlagBitsEXT
+{
+       VK_DEBUG_REPORT_INFORMATION_BIT_EXT                     = 0x00000001,
+       VK_DEBUG_REPORT_WARNING_BIT_EXT                         = 0x00000002,
+       VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT     = 0x00000004,
+       VK_DEBUG_REPORT_ERROR_BIT_EXT                           = 0x00000008,
+       VK_DEBUG_REPORT_DEBUG_BIT_EXT                           = 0x00000010,
+};
+typedef deUint32 VkDebugReportFlagsEXT;
+
 typedef deUint32 VkInstanceCreateFlags;
 
 typedef deUint32 VkDeviceCreateFlags;
index 2c04d28..5a32065 100644 (file)
@@ -13,3 +13,6 @@ virtual PFN_vkVoidFunction    getDeviceProcAddr                                               (VkDevice device, const char*
 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 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;
index 8d21051..7b5d8c0 100644 (file)
@@ -96,11 +96,34 @@ enum
 
 typedef VKAPI_ATTR void                (VKAPI_CALL* PFN_vkVoidFunction)                                        (void);
 
-typedef VKAPI_ATTR void*       (VKAPI_CALL* PFN_vkAllocationFunction)                          (void* pUserData, size_t size, size_t alignment, VkSystemAllocationScope allocationScope);
-typedef VKAPI_ATTR void*       (VKAPI_CALL* PFN_vkReallocationFunction)                        (void* pUserData, void* pOriginal, size_t size, size_t alignment, VkSystemAllocationScope allocationScope);
-typedef VKAPI_ATTR void                (VKAPI_CALL* PFN_vkFreeFunction)                                        (void* pUserData, void* pMem);
-typedef VKAPI_ATTR void                (VKAPI_CALL* PFN_vkInternalAllocationNotification)      (void* pUserData, size_t size, VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope);
-typedef VKAPI_ATTR void                (VKAPI_CALL* PFN_vkInternalFreeNotification)            (void* pUserData, size_t size, VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope);
+typedef VKAPI_ATTR void*       (VKAPI_CALL* PFN_vkAllocationFunction)                          (void*                                          pUserData,
+                                                                                                                                                                size_t                                         size,
+                                                                                                                                                                size_t                                         alignment,
+                                                                                                                                                                VkSystemAllocationScope        allocationScope);
+typedef VKAPI_ATTR void*       (VKAPI_CALL* PFN_vkReallocationFunction)                        (void*                                          pUserData,
+                                                                                                                                                                void*                                          pOriginal,
+                                                                                                                                                                size_t                                         size,
+                                                                                                                                                                size_t                                         alignment,
+                                                                                                                                                                VkSystemAllocationScope        allocationScope);
+typedef VKAPI_ATTR void                (VKAPI_CALL* PFN_vkFreeFunction)                                        (void*                                          pUserData,
+                                                                                                                                                                void*                                          pMem);
+typedef VKAPI_ATTR void                (VKAPI_CALL* PFN_vkInternalAllocationNotification)      (void*                                          pUserData,
+                                                                                                                                                                size_t                                         size,
+                                                                                                                                                                VkInternalAllocationType       allocationType,
+                                                                                                                                                                VkSystemAllocationScope        allocationScope);
+typedef VKAPI_ATTR void                (VKAPI_CALL* PFN_vkInternalFreeNotification)            (void*                                          pUserData,
+                                                                                                                                                                size_t                                         size,
+                                                                                                                                                                VkInternalAllocationType       allocationType,
+                                                                                                                                                                VkSystemAllocationScope        allocationScope);
+
+typedef VKAPI_ATTR VkBool32    (VKAPI_CALL* PFN_vkDebugReportCallbackEXT)                      (VkDebugReportFlagsEXT          flags,
+                                                                                                                                                                VkDebugReportObjectTypeEXT     objectType,
+                                                                                                                                                                deUint64                                       object,
+                                                                                                                                                                size_t                                         location,
+                                                                                                                                                                deInt32                                        messageCode,
+                                                                                                                                                                const char*                            pLayerPrefix,
+                                                                                                                                                                const char*                            pMessage,
+                                                                                                                                                                void*                                          pUserData);
 
 #include "vkStructTypes.inl"
 
index 8630c6d..e31845a 100644 (file)
@@ -138,3 +138,6 @@ typedef VKAPI_ATTR void                                     (VKAPI_CALL* CmdBeginRenderPassFunc)                                                    (VkComman
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdNextSubpassFunc)                                                                (VkCommandBuffer commandBuffer, VkSubpassContents contents);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderPassFunc)                                                              (VkCommandBuffer commandBuffer);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdExecuteCommandsFunc)                                                    (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDebugReportCallbackEXTFunc)                                  (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDebugReportCallbackEXTFunc)                                 (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DebugReportMessageEXTFunc)                                                 (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage);
index d82a730..27249d4 100644 (file)
@@ -32,6 +32,7 @@ enum HandleType
        HANDLE_TYPE_SWAPCHAIN_KHR,
        HANDLE_TYPE_DISPLAY_KHR,
        HANDLE_TYPE_DISPLAY_MODE_KHR,
+       HANDLE_TYPE_DEBUG_REPORT_CALLBACK_EXT,
        HANDLE_TYPE_LAST
 };
 
index 1bd339c..02d16a1 100644 (file)
@@ -13,3 +13,6 @@ m_vk.getDeviceProcAddr                                                = (GetDeviceProcAddrFunc)                                               GET_PROC_ADDR("vkGetD
 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.createDebugReportCallbackEXT                      = (CreateDebugReportCallbackEXTFunc)                    GET_PROC_ADDR("vkCreateDebugReportCallbackEXT");
+m_vk.destroyDebugReportCallbackEXT                     = (DestroyDebugReportCallbackEXTFunc)                   GET_PROC_ADDR("vkDestroyDebugReportCallbackEXT");
+m_vk.debugReportMessageEXT                                     = (DebugReportMessageEXTFunc)                                   GET_PROC_ADDR("vkDebugReportMessageEXT");
index 12dc4fd..13ebdcb 100644 (file)
@@ -61,3 +61,18 @@ VkResult InstanceDriver::enumerateDeviceLayerProperties (VkPhysicalDevice physic
 {
        return m_vk.enumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
 }
+
+VkResult InstanceDriver::createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const
+{
+       return m_vk.createDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
+}
+
+void InstanceDriver::destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const
+{
+       m_vk.destroyDebugReportCallbackEXT(instance, callback, pAllocator);
+}
+
+void InstanceDriver::debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const
+{
+       m_vk.debugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
+}
index e4e072f..1f60df8 100644 (file)
@@ -13,3 +13,6 @@ GetDeviceProcAddrFunc                                         getDeviceProcAddr;
 CreateDeviceFunc                                                       createDevice;
 EnumerateDeviceExtensionPropertiesFunc         enumerateDeviceExtensionProperties;
 EnumerateDeviceLayerPropertiesFunc                     enumerateDeviceLayerProperties;
+CreateDebugReportCallbackEXTFunc                       createDebugReportCallbackEXT;
+DestroyDebugReportCallbackEXTFunc                      destroyDebugReportCallbackEXT;
+DebugReportMessageEXTFunc                                      debugReportMessageEXT;
index d32e833..7786ce1 100644 (file)
@@ -118,10 +118,10 @@ void freeHandle (Handle handle, const VkAllocationCallbacks* pAllocator)
                delete obj;
 }
 
-template<typename Object, typename Handle, typename CreateInfo>
-Handle allocateNonDispHandle (VkDevice device, const CreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+template<typename Object, typename Handle, typename Parent, typename CreateInfo>
+Handle allocateNonDispHandle (Parent parent, const CreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       Object* const   obj             = allocateHandle<Object, Object*>(device, pCreateInfo, pAllocator);
+       Object* const   obj             = allocateHandle<Object, Object*>(parent, pCreateInfo, pAllocator);
        return Handle((deUint64)(deUintptr)obj);
 }
 
@@ -181,6 +181,13 @@ private:
        const tcu::StaticFunctionLibrary        m_functions;
 };
 
+class DebugReportCallbackEXT
+{
+public:
+                                                                               DebugReportCallbackEXT  (VkInstance, const VkDebugReportCallbackCreateInfoEXT*) {}
+                                                                               ~DebugReportCallbackEXT (void) {}
+};
+
 class Device
 {
 public:
index 722feea..a5c3b84 100644 (file)
@@ -121,6 +121,12 @@ VKAPI_ATTR VkResult VKAPI_CALL createCommandPool (VkDevice device, const VkComma
        VK_NULL_RETURN((*pCommandPool = allocateNonDispHandle<CommandPool, VkCommandPool>(device, pCreateInfo, pAllocator)));
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback)
+{
+       DE_UNREF(pAllocator);
+       VK_NULL_RETURN((*pCallback = allocateNonDispHandle<DebugReportCallbackEXT, VkDebugReportCallbackEXT>(instance, pCreateInfo, pAllocator)));
+}
+
 VKAPI_ATTR void VKAPI_CALL destroyInstance (VkInstance instance, const VkAllocationCallbacks* pAllocator)
 {
        freeHandle<Instance, VkInstance>(instance, pAllocator);
@@ -245,6 +251,12 @@ VKAPI_ATTR void VKAPI_CALL destroyCommandPool (VkDevice device, VkCommandPool co
        freeNonDispHandle<CommandPool, VkCommandPool>(commandPool, pAllocator);
 }
 
+VKAPI_ATTR void VKAPI_CALL destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator)
+{
+       DE_UNREF(instance);
+       freeNonDispHandle<DebugReportCallbackEXT, VkDebugReportCallbackEXT>(callback, pAllocator);
+}
+
 VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceFeatures (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures)
 {
        DE_UNREF(physicalDevice);
@@ -912,6 +924,18 @@ VKAPI_ATTR void VKAPI_CALL cmdExecuteCommands (VkCommandBuffer commandBuffer, de
        DE_UNREF(pCommandBuffers);
 }
 
+VKAPI_ATTR void VKAPI_CALL debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage)
+{
+       DE_UNREF(instance);
+       DE_UNREF(flags);
+       DE_UNREF(objectType);
+       DE_UNREF(object);
+       DE_UNREF(location);
+       DE_UNREF(messageCode);
+       DE_UNREF(pLayerPrefix);
+       DE_UNREF(pMessage);
+}
+
 static const tcu::StaticFunctionLibrary::Entry s_platformFunctions[] =
 {
        VK_NULL_FUNC_ENTRY(vkCreateInstance,                                            createInstance),
@@ -934,6 +958,9 @@ static const tcu::StaticFunctionLibrary::Entry s_instanceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkCreateDevice,                                                              createDevice),
        VK_NULL_FUNC_ENTRY(vkEnumerateDeviceExtensionProperties,                enumerateDeviceExtensionProperties),
        VK_NULL_FUNC_ENTRY(vkEnumerateDeviceLayerProperties,                    enumerateDeviceLayerProperties),
+       VK_NULL_FUNC_ENTRY(vkCreateDebugReportCallbackEXT,                              createDebugReportCallbackEXT),
+       VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT,                             destroyDebugReportCallbackEXT),
+       VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT,                                             debugReportMessageEXT),
 };
 
 static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
index 9f36843..fb74cb2 100644 (file)
@@ -134,6 +134,29 @@ private:
 };
 
 template<>
+class Deleter<VkDebugReportCallbackEXT>
+{
+public:
+                                                                       Deleter         (const InstanceInterface& instanceIface, VkInstance instance, const VkAllocationCallbacks* allocator)
+                                                                               : m_instanceIface       (&instanceIface)
+                                                                               , m_instance            (instance)
+                                                                               , m_allocator           (allocator)
+                                                                       {}
+                                                                       Deleter         (void)
+                                                                               : m_instanceIface       (DE_NULL)
+                                                                               , m_instance            ((VkInstance)0)
+                                                                               , m_allocator           (DE_NULL)
+                                                                       {}
+
+       void                                                    operator()      (VkDebugReportCallbackEXT obj) const { m_instanceIface->destroyDebugReportCallbackEXT(m_instance, obj, m_allocator); }
+
+private:
+       const InstanceInterface*                m_instanceIface;
+       VkInstance                                              m_instance;
+       const VkAllocationCallbacks*    m_allocator;
+};
+
+template<>
 class Deleter<VkDescriptorSet>
 {
 public:
index 2d2a5fd..9733c1c 100644 (file)
@@ -1,25 +1,26 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-Move<VkInstance>                       createInstance                          (const PlatformInterface& vk, const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkDevice>                         createDevice                            (const InstanceInterface& vk, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkDeviceMemory>           allocateMemory                          (const DeviceInterface& vk, VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkFence>                          createFence                                     (const DeviceInterface& vk, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSemaphore>                      createSemaphore                         (const DeviceInterface& vk, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkEvent>                          createEvent                                     (const DeviceInterface& vk, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkQueryPool>                      createQueryPool                         (const DeviceInterface& vk, VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkBuffer>                         createBuffer                            (const DeviceInterface& vk, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkBufferView>                     createBufferView                        (const DeviceInterface& vk, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkImage>                          createImage                                     (const DeviceInterface& vk, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkImageView>                      createImageView                         (const DeviceInterface& vk, VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkShaderModule>           createShaderModule                      (const DeviceInterface& vk, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkPipelineCache>          createPipelineCache                     (const DeviceInterface& vk, VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkPipeline>                       createGraphicsPipelines         (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkPipeline>                       createComputePipelines          (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkPipelineLayout>         createPipelineLayout            (const DeviceInterface& vk, VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSampler>                                createSampler                           (const DeviceInterface& vk, VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkDescriptorSetLayout>    createDescriptorSetLayout       (const DeviceInterface& vk, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkDescriptorPool>         createDescriptorPool            (const DeviceInterface& vk, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkFramebuffer>                    createFramebuffer                       (const DeviceInterface& vk, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkRenderPass>                     createRenderPass                        (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkCommandPool>                    createCommandPool                       (const DeviceInterface& vk, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkInstance>                               createInstance                                  (const PlatformInterface& vk, const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkDevice>                                 createDevice                                    (const InstanceInterface& vk, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkDeviceMemory>                   allocateMemory                                  (const DeviceInterface& vk, VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkFence>                                  createFence                                             (const DeviceInterface& vk, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSemaphore>                              createSemaphore                                 (const DeviceInterface& vk, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkEvent>                                  createEvent                                             (const DeviceInterface& vk, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkQueryPool>                              createQueryPool                                 (const DeviceInterface& vk, VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkBuffer>                                 createBuffer                                    (const DeviceInterface& vk, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkBufferView>                             createBufferView                                (const DeviceInterface& vk, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkImage>                                  createImage                                             (const DeviceInterface& vk, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkImageView>                              createImageView                                 (const DeviceInterface& vk, VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkShaderModule>                   createShaderModule                              (const DeviceInterface& vk, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkPipelineCache>                  createPipelineCache                             (const DeviceInterface& vk, VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkPipeline>                               createGraphicsPipelines                 (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkPipeline>                               createComputePipelines                  (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkPipelineLayout>                 createPipelineLayout                    (const DeviceInterface& vk, VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSampler>                                        createSampler                                   (const DeviceInterface& vk, VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkDescriptorSetLayout>            createDescriptorSetLayout               (const DeviceInterface& vk, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkDescriptorPool>                 createDescriptorPool                    (const DeviceInterface& vk, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkFramebuffer>                            createFramebuffer                               (const DeviceInterface& vk, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkRenderPass>                             createRenderPass                                (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkCommandPool>                            createCommandPool                               (const DeviceInterface& vk, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkDebugReportCallbackEXT> createDebugReportCallbackEXT    (const InstanceInterface& vk, VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
index 021e48b..15aa57a 100644 (file)
@@ -274,3 +274,10 @@ Move<VkCommandPool> createCommandPool (const DeviceInterface& vk, VkDevice devic
        return Move<VkCommandPool>(check<VkCommandPool>(object), Deleter<VkCommandPool>(vk, device, pAllocator));
 }
 
+Move<VkDebugReportCallbackEXT> createDebugReportCallbackEXT (const InstanceInterface& vk, VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+{
+       VkDebugReportCallbackEXT object = 0;
+       VK_CHECK(vk.createDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkDebugReportCallbackEXT>(check<VkDebugReportCallbackEXT>(object), Deleter<VkDebugReportCallbackEXT>(vk, instance, pAllocator));
+}
+
index 92bf240..067ac09 100644 (file)
@@ -38,6 +38,8 @@ const char*   getIndexTypeName                                        (VkIndexType value);
 const char*    getSubpassContentsName                          (VkSubpassContents value);
 const char*    getColorSpaceKHRName                            (VkColorSpaceKHR value);
 const char*    getPresentModeKHRName                           (VkPresentModeKHR value);
+const char*    getDebugReportObjectTypeEXTName         (VkDebugReportObjectTypeEXT value);
+const char*    getDebugReportErrorEXTName                      (VkDebugReportErrorEXT value);
 
 inline tcu::Format::Enum<VkPipelineCacheHeaderVersion> getPipelineCacheHeaderVersionStr        (VkPipelineCacheHeaderVersion value)    { return tcu::Format::Enum<VkPipelineCacheHeaderVersion>(getPipelineCacheHeaderVersionName, value);     }
 inline tcu::Format::Enum<VkResult>                                             getResultStr                                            (VkResult value)                                                { return tcu::Format::Enum<VkResult>(getResultName, value);                                                                                     }
@@ -76,6 +78,8 @@ inline tcu::Format::Enum<VkIndexType>                                 getIndexTypeStr                                         (VkIndexType valu
 inline tcu::Format::Enum<VkSubpassContents>                            getSubpassContentsStr                           (VkSubpassContents value)                               { return tcu::Format::Enum<VkSubpassContents>(getSubpassContentsName, value);                                           }
 inline tcu::Format::Enum<VkColorSpaceKHR>                              getColorSpaceKHRStr                                     (VkColorSpaceKHR value)                                 { return tcu::Format::Enum<VkColorSpaceKHR>(getColorSpaceKHRName, value);                                                       }
 inline tcu::Format::Enum<VkPresentModeKHR>                             getPresentModeKHRStr                            (VkPresentModeKHR value)                                { return tcu::Format::Enum<VkPresentModeKHR>(getPresentModeKHRName, value);                                                     }
+inline tcu::Format::Enum<VkDebugReportObjectTypeEXT>   getDebugReportObjectTypeEXTStr          (VkDebugReportObjectTypeEXT value)              { return tcu::Format::Enum<VkDebugReportObjectTypeEXT>(getDebugReportObjectTypeEXTName, value);         }
+inline tcu::Format::Enum<VkDebugReportErrorEXT>                        getDebugReportErrorEXTStr                       (VkDebugReportErrorEXT value)                   { return tcu::Format::Enum<VkDebugReportErrorEXT>(getDebugReportErrorEXTName, value);                           }
 
 inline std::ostream&   operator<<      (std::ostream& s, VkPipelineCacheHeaderVersion value)   { return s << getPipelineCacheHeaderVersionStr(value);  }
 inline std::ostream&   operator<<      (std::ostream& s, VkResult value)                                               { return s << getResultStr(value);                                              }
@@ -114,6 +118,8 @@ inline std::ostream&        operator<<      (std::ostream& s, VkIndexType value)                                    { retur
 inline std::ostream&   operator<<      (std::ostream& s, VkSubpassContents value)                              { return s << getSubpassContentsStr(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, VkDebugReportObjectTypeEXT value)             { return s << getDebugReportObjectTypeEXTStr(value);    }
+inline std::ostream&   operator<<      (std::ostream& s, VkDebugReportErrorEXT value)                  { return s << getDebugReportErrorEXTStr(value);                 }
 
 tcu::Format::Bitfield<32>      getFormatFeatureFlagsStr                                        (VkFormatFeatureFlags value);
 tcu::Format::Bitfield<32>      getImageUsageFlagsStr                                           (VkImageUsageFlags value);
@@ -148,6 +154,7 @@ tcu::Format::Bitfield<32>   getStencilFaceFlagsStr                                          (VkStencilFaceFlags value)
 tcu::Format::Bitfield<32>      getSurfaceTransformFlagsKHRStr                          (VkSurfaceTransformFlagsKHR value);
 tcu::Format::Bitfield<32>      getCompositeAlphaFlagsKHRStr                            (VkCompositeAlphaFlagsKHR value);
 tcu::Format::Bitfield<32>      getDisplayPlaneAlphaFlagsKHRStr                         (VkDisplayPlaneAlphaFlagsKHR value);
+tcu::Format::Bitfield<32>      getDebugReportFlagsEXTStr                                       (VkDebugReportFlagsEXT value);
 tcu::Format::Bitfield<32>      getInstanceCreateFlagsStr                                       (VkInstanceCreateFlags value);
 tcu::Format::Bitfield<32>      getDeviceCreateFlagsStr                                         (VkDeviceCreateFlags value);
 tcu::Format::Bitfield<32>      getDeviceQueueCreateFlagsStr                            (VkDeviceQueueCreateFlags value);
@@ -293,3 +300,4 @@ std::ostream&       operator<<      (std::ostream& s, const VkRenderPassBeginInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDispatchIndirectCommand& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDrawIndexedIndirectCommand& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDrawIndirectCommand& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value);
index c5aa62c..b30ceee 100644 (file)
@@ -1,35 +1,36 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-template<> const char* getTypeName<VkInstance>                         (void) { return "VkInstance";                           }
-template<> const char* getTypeName<VkPhysicalDevice>           (void) { return "VkPhysicalDevice";                     }
-template<> const char* getTypeName<VkDevice>                           (void) { return "VkDevice";                                     }
-template<> const char* getTypeName<VkQueue>                            (void) { return "VkQueue";                                      }
-template<> const char* getTypeName<VkSemaphore>                        (void) { return "VkSemaphore";                          }
-template<> const char* getTypeName<VkCommandBuffer>            (void) { return "VkCommandBuffer";                      }
-template<> const char* getTypeName<VkFence>                            (void) { return "VkFence";                                      }
-template<> const char* getTypeName<VkDeviceMemory>                     (void) { return "VkDeviceMemory";                       }
-template<> const char* getTypeName<VkBuffer>                           (void) { return "VkBuffer";                                     }
-template<> const char* getTypeName<VkImage>                            (void) { return "VkImage";                                      }
-template<> const char* getTypeName<VkEvent>                            (void) { return "VkEvent";                                      }
-template<> const char* getTypeName<VkQueryPool>                        (void) { return "VkQueryPool";                          }
-template<> const char* getTypeName<VkBufferView>                       (void) { return "VkBufferView";                         }
-template<> const char* getTypeName<VkImageView>                        (void) { return "VkImageView";                          }
-template<> const char* getTypeName<VkShaderModule>                     (void) { return "VkShaderModule";                       }
-template<> const char* getTypeName<VkPipelineCache>            (void) { return "VkPipelineCache";                      }
-template<> const char* getTypeName<VkPipelineLayout>           (void) { return "VkPipelineLayout";                     }
-template<> const char* getTypeName<VkRenderPass>                       (void) { return "VkRenderPass";                         }
-template<> const char* getTypeName<VkPipeline>                         (void) { return "VkPipeline";                           }
-template<> const char* getTypeName<VkDescriptorSetLayout>      (void) { return "VkDescriptorSetLayout";        }
-template<> const char* getTypeName<VkSampler>                          (void) { return "VkSampler";                            }
-template<> const char* getTypeName<VkDescriptorPool>           (void) { return "VkDescriptorPool";                     }
-template<> const char* getTypeName<VkDescriptorSet>            (void) { return "VkDescriptorSet";                      }
-template<> const char* getTypeName<VkFramebuffer>                      (void) { return "VkFramebuffer";                        }
-template<> const char* getTypeName<VkCommandPool>                      (void) { return "VkCommandPool";                        }
-template<> const char* getTypeName<VkSurfaceKHR>                       (void) { return "VkSurfaceKHR";                         }
-template<> const char* getTypeName<VkSwapchainKHR>                     (void) { return "VkSwapchainKHR";                       }
-template<> const char* getTypeName<VkDisplayKHR>                       (void) { return "VkDisplayKHR";                         }
-template<> const char* getTypeName<VkDisplayModeKHR>           (void) { return "VkDisplayModeKHR";                     }
+template<> const char* getTypeName<VkInstance>                                 (void) { return "VkInstance";                           }
+template<> const char* getTypeName<VkPhysicalDevice>                   (void) { return "VkPhysicalDevice";                     }
+template<> const char* getTypeName<VkDevice>                                   (void) { return "VkDevice";                                     }
+template<> const char* getTypeName<VkQueue>                                    (void) { return "VkQueue";                                      }
+template<> const char* getTypeName<VkSemaphore>                                (void) { return "VkSemaphore";                          }
+template<> const char* getTypeName<VkCommandBuffer>                    (void) { return "VkCommandBuffer";                      }
+template<> const char* getTypeName<VkFence>                                    (void) { return "VkFence";                                      }
+template<> const char* getTypeName<VkDeviceMemory>                             (void) { return "VkDeviceMemory";                       }
+template<> const char* getTypeName<VkBuffer>                                   (void) { return "VkBuffer";                                     }
+template<> const char* getTypeName<VkImage>                                    (void) { return "VkImage";                                      }
+template<> const char* getTypeName<VkEvent>                                    (void) { return "VkEvent";                                      }
+template<> const char* getTypeName<VkQueryPool>                                (void) { return "VkQueryPool";                          }
+template<> const char* getTypeName<VkBufferView>                               (void) { return "VkBufferView";                         }
+template<> const char* getTypeName<VkImageView>                                (void) { return "VkImageView";                          }
+template<> const char* getTypeName<VkShaderModule>                             (void) { return "VkShaderModule";                       }
+template<> const char* getTypeName<VkPipelineCache>                    (void) { return "VkPipelineCache";                      }
+template<> const char* getTypeName<VkPipelineLayout>                   (void) { return "VkPipelineLayout";                     }
+template<> const char* getTypeName<VkRenderPass>                               (void) { return "VkRenderPass";                         }
+template<> const char* getTypeName<VkPipeline>                                 (void) { return "VkPipeline";                           }
+template<> const char* getTypeName<VkDescriptorSetLayout>              (void) { return "VkDescriptorSetLayout";        }
+template<> const char* getTypeName<VkSampler>                                  (void) { return "VkSampler";                            }
+template<> const char* getTypeName<VkDescriptorPool>                   (void) { return "VkDescriptorPool";                     }
+template<> const char* getTypeName<VkDescriptorSet>                    (void) { return "VkDescriptorSet";                      }
+template<> const char* getTypeName<VkFramebuffer>                              (void) { return "VkFramebuffer";                        }
+template<> const char* getTypeName<VkCommandPool>                              (void) { return "VkCommandPool";                        }
+template<> const char* getTypeName<VkSurfaceKHR>                               (void) { return "VkSurfaceKHR";                         }
+template<> const char* getTypeName<VkSwapchainKHR>                             (void) { return "VkSwapchainKHR";                       }
+template<> const char* getTypeName<VkDisplayKHR>                               (void) { return "VkDisplayKHR";                         }
+template<> const char* getTypeName<VkDisplayModeKHR>                   (void) { return "VkDisplayModeKHR";                     }
+template<> const char* getTypeName<VkDebugReportCallbackEXT>   (void) { return "VkDebugReportCallbackEXT";     }
 
 const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
 {
@@ -62,11 +63,12 @@ const char* getResultName (VkResult value)
                case VK_ERROR_TOO_MANY_OBJECTS:                 return "VK_ERROR_TOO_MANY_OBJECTS";
                case VK_ERROR_FORMAT_NOT_SUPPORTED:             return "VK_ERROR_FORMAT_NOT_SUPPORTED";
                case VK_ERROR_SURFACE_LOST_KHR:                 return "VK_ERROR_SURFACE_LOST_KHR";
+               case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR: return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
                case VK_SUBOPTIMAL_KHR:                                 return "VK_SUBOPTIMAL_KHR";
                case VK_ERROR_OUT_OF_DATE_KHR:                  return "VK_ERROR_OUT_OF_DATE_KHR";
                case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR: return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
-               case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR: return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
                case VK_ERROR_VALIDATION_FAILED_EXT:    return "VK_ERROR_VALIDATION_FAILED_EXT";
+               case VK_ERROR_INVALID_SHADER_NV:                return "VK_ERROR_INVALID_SHADER_NV";
                default:                                                                return DE_NULL;
        }
 }
@@ -135,7 +137,7 @@ const char* getStructureTypeName (VkStructureType value)
                case VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR:                                     return "VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR";
                case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:                         return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
                case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:                           return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:           return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
                default:                                                                                                                        return DE_NULL;
        }
 }
@@ -769,6 +771,53 @@ const char* getPresentModeKHRName (VkPresentModeKHR value)
        }
 }
 
+const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
+{
+       switch (value)
+       {
+               case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:                          return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:           return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:                         return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:                        return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:                       return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:                        return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:           return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:                       return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:                          return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:     return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:           return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:                       return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:                      return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:                       return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT:                      return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT";
+               default:                                                                                                        return DE_NULL;
+       }
+}
+
+const char* getDebugReportErrorEXTName (VkDebugReportErrorEXT value)
+{
+       switch (value)
+       {
+               case VK_DEBUG_REPORT_ERROR_NONE_EXT:                    return "VK_DEBUG_REPORT_ERROR_NONE_EXT";
+               case VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT:    return "VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT";
+               default:                                                                                return DE_NULL;
+       }
+}
+
 tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
@@ -785,6 +834,7 @@ tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,    "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,                                    "VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,                                    "VK_FORMAT_FEATURE_BLIT_DST_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1195,6 +1245,19 @@ 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> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,                       "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,                           "VK_DEBUG_REPORT_WARNING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,       "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,                                     "VK_DEBUG_REPORT_ERROR_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,                                     "VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
 tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
@@ -2882,3 +2945,15 @@ std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
        s << '}';
        return s;
 }
+
+std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
+{
+       s << "VkDebugReportCallbackCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
+       s << "\tpfnCallback = " << value.pfnCallback << '\n';
+       s << "\tpUserData = " << value.pUserData << '\n';
+       s << '}';
+       return s;
+}
index 49d993c..a59d81b 100644 (file)
@@ -1183,3 +1183,12 @@ struct VkDrawIndirectCommand
        deUint32        firstInstance;
 };
 
+struct VkDebugReportCallbackCreateInfoEXT
+{
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkDebugReportFlagsEXT                   flags;
+       PFN_vkDebugReportCallbackEXT    pfnCallback;
+       void*                                                   pUserData;
+};
+
index 9c17a06..964d76b 100644 (file)
@@ -13,3 +13,6 @@ virtual PFN_vkVoidFunction    getDeviceProcAddr                                               (VkDevice device, const char*
 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 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;
index 2e2482a..3d10ef9 100644 (file)
@@ -57,6 +57,9 @@ INSTANCE_FUNCTIONS    = [
        "vkEnumerateDeviceLayerProperties",
        "vkCreateDevice",
        "vkGetDeviceProcAddr",
+       "vkCreateDebugReportCallbackEXT",
+       "vkDestroyDebugReportCallbackEXT",
+       "vkDebugReportMessageEXT",
 ]
 
 DEFINITIONS                    = [
@@ -189,22 +192,24 @@ def getFunctionTypeName (function):
        assert function.name[:2] == "vk"
        return function.name[2:] + "Func"
 
+def endsWith (str, postfix):
+       return str[-len(postfix):] == postfix
+
+def splitNameExtPostfix (name):
+       knownExtPostfixes = ["KHR", "EXT"]
+       for postfix in knownExtPostfixes:
+               if endsWith(name, postfix):
+                       return (name[:-len(postfix)], postfix)
+       return (name, "")
+
 def getBitEnumNameForBitfield (bitfieldName):
-       if bitfieldName[-3:] == "KHR":
-               postfix = "KHR"
-               bitfieldName = bitfieldName[:-3]
-       else:
-               postfix = ""
+       bitfieldName, postfix = splitNameExtPostfix(bitfieldName)
 
        assert bitfieldName[-1] == "s"
        return bitfieldName[:-1] + "Bits" + postfix
 
 def getBitfieldNameForBitEnum (bitEnumName):
-       if bitEnumName[-3:] == "KHR":
-               postfix = "KHR"
-               bitEnumName = bitEnumName[:-3]
-       else:
-               postfix = ""
+       bitEnumName, postfix = splitNameExtPostfix(bitEnumName)
 
        assert bitEnumName[-4:] == "Bits"
        return bitEnumName[:-4] + "s" + postfix
@@ -620,7 +625,15 @@ def writeRefUtilImpl (api, filename):
                yield ""
 
                for function in functions:
-                       dtorObj = "device" if function.type == Function.TYPE_DEVICE else "object"
+                       if function.type == Function.TYPE_DEVICE:
+                               dtorObj = "device"
+                       elif function.type == Function.TYPE_INSTANCE:
+                               if function.name == "createDevice":
+                                       dtorObj = "object"
+                               else:
+                                       dtorObj = "instance"
+                       else:
+                               dtorObj = "object"
 
                        yield "Move<%s> %s (%s)" % (function.objectType, function.name, argListToStr([function.iface] + function.arguments))
                        yield "{"