public void EnableValidation(DebugUtilsCallback d, DebugUtilsMessageTypeFlag flags = DebugUtilsMessageTypeFlag.VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | DebugUtilsMessageTypeFlag.VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT | DebugUtilsMessageTypeFlag.VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT) { if (vkCreateDebugReportCallbackEXT == null) { throw new InvalidOperationException("vkCreateDebugReportCallbackEXT is not available, possibly you might be missing VK_EXT_debug_report extension. Try to enable it when creating the Instance."); } debugUtilsCreateInfo = new DebugUtilsMessengerCreateInfoEXT() { Flags = 0, messageSeverity = DebugUtilsMessageSeverityFlag.VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | DebugUtilsMessageSeverityFlag.VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT | DebugUtilsMessageSeverityFlag.VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT, messageType = flags, sType = StructureType.DEBUGUTILSMESSENGERCREATEINFOEXT, pfnUserCallback = Marshal.GetFunctionPointerForDelegate(d), }; unsafe { fixed(DebugUtilsMessengerCreateInfoEXT *Debug = &debugUtilsCreateInfo) fixed(UInt64 * Callback = &aaaa) { vkCreateDebugUtilsCallbackExt.Invoke(this.m, Debug, null, Callback); } } }
private Bool32 ValidationCallback(DebugUtilsMessageSeverityFlag severity, DebugUtilsMessageTypeFlag myType, DebugUtilsMessengerCallbackData myData, IntPtr myUserData) { //if(severity == DebugUtilsMessageSeverityFlag.VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) Debug.WriteLine(Marshal.PtrToStringAnsi(myData.pMessage)); // Debug.WriteLine($"{severity}: {Marshal.PtrToStringAnsi(myData.)}"); return(true); }