const char* layerName[] = { "VK_LAYER_LUNARG_standard_validation", "VK_LAYER_LUNARG_core_validation", "VK_LAYER_LUNARG_parameter_validation" };
const char* instanceExt[] = { "VK_KHR_surface", "VK_KHR_win32_surface" };
for (int i = 0; i < _countof(layerName); i++)
if (ConfirmLayerExists(layerName[i]) != VK_SUCCESS)
return 1;
// Print all Instance Extensions
PrintInstanceExtensions();
for (int i = 0; i < _countof(instanceExt); i++)
if (ConfirmInstanceExtension(instanceExt[i]) != VK_SUCCESS)
return 1;
VkInstanceCreateInfo vkInfo = {};
vkInfo.enabledLayerCount = _countof(layerName);
vkInfo.ppEnabledLayerNames = layerName;
vkInfo.enabledExtensionCount = _countof(instanceExt);
vkInfo.ppEnabledExtensionNames = instanceExt;
VkInstance vkInstance;
// Create the Vulkan Instance
VkResult res = vkCreateInstance(&vkInfo, 0, &vkInstance);
*pVkInstance = vkInstance;
return res;