1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
	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;