def _create_instance(self, window, configuration): '''Create Vulkan instance *Parameters:* - `window`: The window for Vulkan - `configuration`: Configuration from Application ''' extensions = VulkContext._get_instance_extensions( window, configuration) layers = VulkContext._get_layers(configuration) app_info = vk.VkApplicationInfo( sType=vk.VK_STRUCTURE_TYPE_APPLICATION_INFO, pApplicationName=configuration.name, applicationVersion=vk.VK_MAKE_VERSION(1, 0, 0), pEngineName=ENGINE_NAME, engineVersion=vk.VK_MAKE_VERSION(1, 0, 0), apiVersion=vk.VK_API_VERSION_1_0) instance_create_info = vk.VkInstanceCreateInfo( sType=vk.VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, flags=0, pApplicationInfo=app_info, enabledExtensionCount=len(extensions), ppEnabledExtensionNames=extensions, enabledLayerCount=len(layers), ppEnabledLayerNames=layers) self.instance = vk.vkCreateInstance(pCreateInfo=instance_create_info)
def init(self, name, version, init_debugger, instance_extensions): app_info = vulkan.VkApplicationInfo( pApplicationName=name, applicationVersion=vulkan.VK_MAKE_VERSION(version[0], version[1], version[2]), apiVersion=vulkan.VK_API_VERSION_1_0) extensions = [] self.layers = [] init_debugger_info = None if init_debugger: extensions.append(vulkan.VK_EXT_DEBUG_UTILS_EXTENSION_NAME) self.layers.extend(init_debugger.LAYERS) init_debugger_info = init_debugger.info instance_info = vulkan.VkInstanceCreateInfo( pApplicationInfo=app_info, ppEnabledExtensionNames=instance_extensions + extensions, ppEnabledLayerNames=self.layers, pNext=init_debugger_info) self.vk_instance = vulkan.vkCreateInstance(instance_info, None)
def init(self): application_info = vulkan.VkApplicationInfo( sType=vulkan.VK_STRUCTURE_TYPE_APPLICATION_INFO, pApplicationName="Triangle", ) instance_create_info = vulkan.VkInstanceCreateInfo( sType=vulkan.VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, pNext=None, flags=0, pApplicationInfo=application_info, ppEnabledExtensionNames=glfw.get_required_instance_extensions(), ) self.instance = vulkan.vkCreateInstance(instance_create_info, None) if not self.instance: raise Exception("can't create vulkan instance") self.device = None for device in vulkan.vkEnumeratePhysicalDevices(self.instance): if device: self.device = device break if not self.device: raise Exception("no suitable device is found") for x in dir(self.instance): print(x)
def __create_instance(self): app_info = vk.VkApplicationInfo( pApplicationName='Python VK', applicationVersion=vk.VK_MAKE_VERSION(1, 0, 0), pEngineName='pyvulkan', engineVersion=vk.VK_MAKE_VERSION(1, 0, 0), apiVersion=vk.VK_API_VERSION) extensions = [ e.extensionName for e in vk.vkEnumerateInstanceExtensionProperties(None) ] instance_info = vk.VkInstanceCreateInfo( pApplicationInfo=app_info, enabledLayerCount=0, enabledExtensionCount=len(extensions), ppEnabledExtensionNames=extensions) self.__instance = vk.vkCreateInstance(instance_info, None)
def init_instance(): ''' Most things set to default values courtesy of the vulkan wrapper to the API ''' application_info = vk.VkApplicationInfo( sType=vk.VK_STRUCTURE_TYPE_APPLICATION_INFO) instance_create_info = vk.VkInstanceCreateInfo( sType=vk.VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, pApplicationInfo=application_info, enabledLayerCount=0, enabledExtensionCount=0) #allocation = vk.vkAllocateMemory() instance = vk.vkCreateInstance(instance_create_info, pAllocator=None) if vk.VK_SUCCESS == 0: print("debug: instance creation success") else: print("Failed to create instance. Error: {}".format(vk.VK_SUCCESS)) return instance
def _create_instance(self): """Create Vulkan instance""" extensions = self._get_instance_extensions() layers = self._get_layers() app_info = vk.VkApplicationInfo( sType=vk.VK_STRUCTURE_TYPE_APPLICATION_INFO, pApplicationName="Vulk-app", applicationVersion=vk.VK_MAKE_VERSION(1, 0, 0), pEngineName=ENGINE_NAME, engineVersion=vk.VK_MAKE_VERSION(1, 0, 0), apiVersion=vk.VK_API_VERSION_1_0) instance_create_info = vk.VkInstanceCreateInfo( sType=vk.VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, flags=0, pApplicationInfo=app_info, enabledExtensionCount=len(extensions), ppEnabledExtensionNames=extensions, enabledLayerCount=len(layers), ppEnabledLayerNames=layers) self.instance = vk.vkCreateInstance(instance_create_info, None)
def _create_instance(self, app_name: str): """Create Vulkan instance.""" app_info = vk.VkApplicationInfo( pApplicationName=app_name, applicationVersion=vk.VK_MAKE_VERSION(1, 0, 0), pEngineName='No Engine', engineVersion=vk.VK_MAKE_VERSION(1, 0, 0), apiVersion=vk.VK_API_VERSION_1_0, ) if self.debug: # TODO: Check whether validation layers are supported layers = ['VK_LAYER_KHRONOS_validation'] else: layers = [] create_info = vk.VkInstanceCreateInfo( pApplicationInfo=app_info, ppEnabledExtensionNames=[ VK_KHR_EXTERNAL_MEMORY_CAPABILITIES, VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES ], ppEnabledLayerNames=layers) self.vk_instance = vk.vkCreateInstance(create_info, None) print('vk vk_instance created')