26 VULKAN_HPP_DEFAULT_DISPATCHER.init();
28 m_layers.push_back(
"VK_LAYER_KHRONOS_validation");
30 vk::ApplicationInfo appInfo;
31 appInfo.setPApplicationName(
"Vulkan Application")
32 .setApplicationVersion(VK_MAKE_VERSION(1, 0, 0))
33 .setPEngineName(
"FCT")
34 .setEngineVersion(VK_MAKE_VERSION(1, 0, 0))
35 .setApiVersion(VK_API_VERSION_1_2);
36 std::vector<vk::ExtensionProperties> availableExtensions = vk::enumerateInstanceExtensionProperties();
39 fout <<
"Available Vulkan extensions:" << std::endl;
40 for (
const auto& extension : availableExtensions) {
41 fout <<
" " << extension.extensionName << std::endl;
43 std::vector<const char*> extensions = {
48 VK_KHR_ANDROID_SURFACE_EXTENSION_NAME,
51 VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
53 VK_KHR_SURFACE_EXTENSION_NAME,
56 vk::InstanceCreateInfo createInfo;
57 createInfo.setPEnabledLayerNames(
m_layers)
58 .setPApplicationInfo(&appInfo)
59 .setPEnabledExtensionNames(extensions);
61 VULKAN_HPP_DEFAULT_DISPATCHER.init(
m_instance);
66 fout <<
"Physical Device: " << it.getProperties().deviceName << std::endl;
67 for (
auto& queueFamily : it.getQueueFamilyProperties()) {
68 fout <<
"Queue Family: " << queueFamily.queueCount << std::endl;