Skip to content

Instantly share code, notes, and snippets.

@maierfelix
Created December 20, 2019 13:29
Show Gist options
  • Save maierfelix/34b3be0b6d4db969b2facc30c8f66768 to your computer and use it in GitHub Desktop.
Save maierfelix/34b3be0b6d4db969b2facc30c8f66768 to your computer and use it in GitHub Desktop.
// app info
let appInfo = new VkApplicationInfo();
appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
appInfo.pApplicationName = "Hello!";
appInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);
appInfo.pEngineName = "No Engine";
appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
appInfo.apiVersion = VK_API_VERSION_1_0;
// create info
let createInfo = new VkInstanceCreateInfo();
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
createInfo.pApplicationInfo = appInfo;
let instanceExtensions = win.getRequiredInstanceExtensions();
instanceExtensions.push(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
instanceExtensions.push(VK_EXT_DEBUG_REPORT_EXTENSION_NAME);
createInfo.enabledExtensionCount = instanceExtensions.length;
createInfo.ppEnabledExtensionNames = instanceExtensions;
// validation layers
let validationLayers = [
"VK_LAYER_LUNARG_standard_validation"
];
createInfo.enabledLayerCount = validationLayers.length;
createInfo.ppEnabledLayerNames = validationLayers;
{
let callback = new VkDebugUtilsMessengerEXT();
let debugUtilsMessengerEXTInfo = new VkDebugUtilsMessengerCreateInfoEXT();
debugUtilsMessengerEXTInfo.messageSeverity = (
VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT |
VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT |
VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT |
VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
);
debugUtilsMessengerEXTInfo.messageType = (
VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT |
VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
);
createInfo.pNext = debugUtilsMessengerEXTInfo;
debugUtilsMessengerEXTInfo.pfnUserCallback = function(messageSeverity, messageType, pCallbackData) {
let obj = pCallbackData.pObjects[0];
console.log(pCallbackData.pMessageIdName);
return false;
};
result = vkCreateInstance(createInfo, null, instance);
ASSERT_VK_RESULT(result);
vkCreateDebugUtilsMessengerEXT(instance, debugUtilsMessengerEXTInfo, null, callback);
}
{
let callback = new VkDebugReportCallbackEXT();
let debugReportCallbackEXTInfo = new VkDebugReportCallbackCreateInfoEXT();
debugReportCallbackEXTInfo.flags = (
VK_DEBUG_REPORT_ERROR_BIT_EXT |
VK_DEBUG_REPORT_WARNING_BIT_EXT |
VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT
);
debugReportCallbackEXTInfo.pUserData = null;
debugReportCallbackEXTInfo.pfnCallback = function(flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, pUserData) {
console.log(messageCode);
return true;
};
vkCreateDebugReportCallbackEXT(instance, debugReportCallbackEXTInfo, null, callback);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment