VV::V1::AppInstance struct

An object that manages the represented application process state within the GPU.

Other Name: Application State Container

Vulkan has no global state reference: Every application must keep track of their state using an instance object.

Application Instance Specification

Derived classes

struct VV::V2::AppInstance
An object that manages the represented application process state within the GPU.

Public types

struct AppInfo
A structure that specifies to the Vulkan driver information about an application that will run an instance.
struct CreateInfo
Structure specifying parameters of a newly created instance.
struct ValidationFeatures
Used when creating a Vulkan app instance and want to enable specific validation features. (Added to the Next chain).
struct ValidationFlags
Used when creating a Vulkan app instance and want to disable validation checks.
using Memory = V0::Memory
using Handle = VkInstance
Opaque handle to an instance object.
using CreateFlags = Bitfield<EUndefined, VkInstanceCreateFlags>
Reserved for future use...

Public static functions

static auto Create(const CreateInfo& _info, const Memory::AllocationCallbacks* _allocator, Handle& _handle) -> EResult
Create a new Vulkan application instance.
static void Destroy(Handle _handle, const Memory::AllocationCallbacks* _allocator)
Destroy an application instance of Vulkan.
static auto GetVersion(ui32& _versionContainer) -> EResult
Query the version of application instance-level functionality supported by the implementation.
static auto QueryAvailableLayers(ui32& _numContainer, LayerProperties* _propertiesContainer) -> EResult
Query the available layers.
static auto QueryAvailableAppExtensions(RoCStr _layerName, ui32& _numProperties, ExtensionProperties* _propertiesContainer) -> EResult
Query the available instance extensions.
static auto QueryPhysicalDeviceListing(Handle _handle, ui32* _numDevices, PhysicalDevice::Handle* _deviceListing) -> EResult
Retrieve a list of physical device objects representing the physical devices installed in the system, or get the number of them.
static auto QueryPhysicalDeviceGroups(Handle _handle, ui32* _numGroups, PhysicalDevice::Group* _groupProperties) -> EResult
Retrieve a list of physical device groups.
template<typename ReturnType>
static auto GetProcedureAddress(Handle& _handle, RoCStr _procedureName) -> std::enable_if<std::bool_constant<std::is_pointer<ReturnType>::value && std::is_function<typename std::remove_pointer<ReturnType>::type>::value>::value, ReturnType>::type
Function pointers for all Vulkan commands can be obtained with this command.