Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb97086a authored by Michael Lentine's avatar Michael Lentine Committed by Jesse Hall
Browse files

Update DEBUG_REPORT extension and callback for v170.2

Change-Id: Ica7bb0fb738804c48f165409882086d0300bc294
(cherry picked from commit 647626135721fc28d36364031f04a1541719fb5e)
parent f860bcb9
Loading
Loading
Loading
Loading
+83 −89
Original line number Diff line number Diff line
@@ -32,12 +32,13 @@
#ifndef __VK_DEBUG_REPORT_LUNARG_H__
#define __VK_DEBUG_REPORT_LUNARG_H__

#include <vulkan/vulkan.h>
#include "vulkan.h"

#define VK_DEBUG_REPORT_EXTENSION_NUMBER 5
#define VK_DEBUG_REPORT_EXTENSION_REVISION 1
#ifdef __cplusplus
extern "C" {
extern "C"
{
#endif // __cplusplus

/*
@@ -65,25 +66,18 @@ typedef enum {
    VK_OBJECT_TYPE_DESCRIPTOR_SET = 17,
    VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 18,
    VK_OBJECT_TYPE_DESCRIPTOR_POOL = 19,
    VK_OBJECT_TYPE_DYNAMIC_VIEWPORT_STATE = 20,
    VK_OBJECT_TYPE_DYNAMIC_LINE_WIDTH_STATE = 21,
    VK_OBJECT_TYPE_DYNAMIC_DEPTH_BIAS_STATE = 22,
    VK_OBJECT_TYPE_DYNAMIC_BLEND_STATE = 23,
    VK_OBJECT_TYPE_DYNAMIC_DEPTH_BOUNDS_STATE = 24,
    VK_OBJECT_TYPE_DYNAMIC_STENCIL_STATE = 25,
    VK_OBJECT_TYPE_FENCE = 26,
    VK_OBJECT_TYPE_SEMAPHORE = 27,
    VK_OBJECT_TYPE_EVENT = 28,
    VK_OBJECT_TYPE_QUERY_POOL = 29,
    VK_OBJECT_TYPE_FRAMEBUFFER = 30,
    VK_OBJECT_TYPE_RENDER_PASS = 31,
    VK_OBJECT_TYPE_PIPELINE_CACHE = 32,
    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 33,
    VK_OBJECT_TYPE_CMD_POOL = 34,
    VK_OBJECT_TYPE_FENCE = 20,
    VK_OBJECT_TYPE_SEMAPHORE = 21,
    VK_OBJECT_TYPE_EVENT = 22,
    VK_OBJECT_TYPE_QUERY_POOL = 23,
    VK_OBJECT_TYPE_FRAMEBUFFER = 24,
    VK_OBJECT_TYPE_RENDER_PASS = 25,
    VK_OBJECT_TYPE_PIPELINE_CACHE = 26,
    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 27,
    VK_OBJECT_TYPE_CMD_POOL = 28,
    VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_INSTANCE,
    VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_CMD_POOL,
    VK_OBJECT_TYPE_NUM =
        (VK_OBJECT_TYPE_CMD_POOL - VK_OBJECT_TYPE_INSTANCE + 1),
    VK_OBJECT_TYPE_NUM = (VK_OBJECT_TYPE_CMD_POOL - VK_OBJECT_TYPE_INSTANCE + 1),
    VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
} VkDbgObjectType;

@@ -94,7 +88,8 @@ VK_DEFINE_NONDISP_HANDLE(VkDbgMsgCallback)
// ------------------------------------------------------------------------------------------------
// Enumerations

typedef enum VkDbgReportFlags_ {
typedef enum VkDbgReportFlags_
{
    VK_DBG_REPORT_INFO_BIT       = 0x0001,
    VK_DBG_REPORT_WARN_BIT       = 0x0002,
    VK_DBG_REPORT_PERF_WARN_BIT  = 0x0004,
@@ -103,21 +98,22 @@ typedef enum VkDbgReportFlags_ {
} VkDbgReportFlags;

// Debug Report ERROR codes
typedef enum _DEBUG_REPORT_ERROR {
typedef enum _DEBUG_REPORT_ERROR
{
    DEBUG_REPORT_NONE,                  // Used for INFO & other non-error messages
    DEBUG_REPORT_CALLBACK_REF,  // Callbacks were not destroyed prior to calling
                                // DestroyInstance
    DEBUG_REPORT_CALLBACK_REF,          // Callbacks were not destroyed prior to calling DestroyInstance
} DEBUG_REPORT_ERROR;

#define VK_DEBUG_REPORT_ENUM_EXTEND(type, id) \
    ((type)(VK_DEBUG_REPORT_EXTENSION_NUMBER * -1000 + (id)))
#define VK_DEBUG_REPORT_ENUM_EXTEND(type, id)    ((type)(VK_DEBUG_REPORT_EXTENSION_NUMBER * -1000 + (id)))

#define VK_OBJECT_TYPE_MSG_CALLBACK VK_DEBUG_REPORT_ENUM_EXTEND(VkDbgObjectType, 0)
#define VK_ERROR_VALIDATION_FAILED VK_DEBUG_REPORT_ENUM_EXTEND(VkResult, 0)

#define VK_OBJECT_TYPE_MSG_CALLBACK \
    VK_DEBUG_REPORT_ENUM_EXTEND(VkDbgObjectType, 0)
// ------------------------------------------------------------------------------------------------
// Vulkan function pointers

typedef void (*PFN_vkDbgMsgCallback)(VkFlags msgFlags,
typedef VkBool32 (*PFN_vkDbgMsgCallback)(
    VkFlags                             msgFlags,
    VkDbgObjectType                     objType,
    uint64_t                            srcObject,
    size_t                              location,
@@ -129,30 +125,26 @@ typedef void (*PFN_vkDbgMsgCallback)(VkFlags msgFlags,
// ------------------------------------------------------------------------------------------------
// API functions

typedef VkResult(VKAPI* PFN_vkDbgCreateMsgCallback)(
    VkInstance instance,
    VkFlags msgFlags,
    const PFN_vkDbgMsgCallback pfnMsgCallback,
    void* pUserData,
    VkDbgMsgCallback* pMsgCallback);
typedef VkResult(VKAPI* PFN_vkDbgDestroyMsgCallback)(
    VkInstance instance,
    VkDbgMsgCallback msgCallback);
typedef VkResult (VKAPI *PFN_vkDbgCreateMsgCallback)(VkInstance instance, VkFlags msgFlags, const PFN_vkDbgMsgCallback pfnMsgCallback, void* pUserData, VkDbgMsgCallback* pMsgCallback);
typedef VkResult (VKAPI *PFN_vkDbgDestroyMsgCallback)(VkInstance instance, VkDbgMsgCallback msgCallback);

#ifdef VK_PROTOTYPES

// DebugReport extension entrypoints
VkResult VKAPI vkDbgCreateMsgCallback(VkInstance instance,
VkResult VKAPI vkDbgCreateMsgCallback(
    VkInstance                          instance,
    VkFlags                             msgFlags,
    const PFN_vkDbgMsgCallback          pfnMsgCallback,
    void*                               pUserData,
    VkDbgMsgCallback*                   pMsgCallback);

VkResult VKAPI vkDbgDestroyMsgCallback(VkInstance instance,
VkResult VKAPI vkDbgDestroyMsgCallback(
    VkInstance                          instance,
    VkDbgMsgCallback                    msgCallback);

// DebugReport utility callback functions
void VKAPI vkDbgStringCallback(VkFlags msgFlags,
void VKAPI vkDbgStringCallback(
    VkFlags                             msgFlags,
    VkDbgObjectType                     objType,
    uint64_t                            srcObject,
    size_t                              location,
@@ -161,7 +153,8 @@ void VKAPI vkDbgStringCallback(VkFlags msgFlags,
    const char*                         pMsg,
    void*                               pUserData);

void VKAPI vkDbgStdioCallback(VkFlags msgFlags,
void VKAPI vkDbgStdioCallback(
    VkFlags                             msgFlags,
    VkDbgObjectType                     objType,
    uint64_t                            srcObject,
    size_t                              location,
@@ -170,7 +163,8 @@ void VKAPI vkDbgStdioCallback(VkFlags msgFlags,
    const char*                         pMsg,
    void*                               pUserData);

void VKAPI vkDbgBreakCallback(VkFlags msgFlags,
void VKAPI vkDbgBreakCallback(
    VkFlags                             msgFlags,
    VkDbgObjectType                     objType,
    uint64_t                            srcObject,
    size_t                              location,
+9 −8
Original line number Diff line number Diff line
@@ -469,7 +469,7 @@ void FreeAllocatedCreateInfo(T& local_create_info,
        const_cast<char**>(local_create_info.ppEnabledExtensionNames));
}

void LogDebugMessageCallback(VkFlags message_flags,
VkBool32 LogDebugMessageCallback(VkFlags message_flags,
                                 VkDbgObjectType /*obj_type*/,
                                 uint64_t /*src_object*/,
                                 size_t /*location*/,
@@ -482,6 +482,7 @@ void LogDebugMessageCallback(VkFlags message_flags,
    } else if (message_flags & VK_DBG_REPORT_WARN_BIT) {
        ALOGW("[%s] Code %d : %s", layer_prefix, message_code, message);
    }
    return false;
}

VkResult CreateDeviceNoop(VkPhysicalDevice,