module
APISpec_InitializationChapter 3: Specification
Classes
- struct VV::V1::AppInstance::AppInfo
- A structure that specifies to the Vulkan driver information about an application that will run an instance.
- struct VV::V1::AppInstance::CreateInfo
- Structure specifying parameters of a newly created instance.
- struct VV::V1::AppInstance::ValidationFeatures
- Used when creating a Vulkan app instance and want to enable specific validation features. (Added to the Next chain).
- struct VV::V1::AppInstance::ValidationFlags
- Used when creating a Vulkan app instance and want to disable validation checks.
- struct VV::V1::AppInstance
- An object that manages the represented application process state within the GPU.
- struct VV::V2::AppInstance
- An object that manages the represented application process state within the GPU.
- class VV::V3::AppInstance
- An object that manages the represented application process state within the GPU.
Enums
- enum class EValidationFeatureEnable: ui32 { GPU_Assisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, GPU_AssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, BestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT, DebugPrintF = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT }
- Specification
Typedefs
- using Handle = VkInstance
- Opaque handle to an instance object.
- using CreateFlags = Bitfield<EUndefined, VkInstanceCreateFlags>
- Reserved for future use...
- using FPtr_Void = PFN_vkVoidFunction
- Equivalent to VK_FPtr<void, void>.
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.
-
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.
-
template<typename ReturnType>static auto GetProcedureAddress(Handle& _appInstance, 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 directly addressed from the device.
Enum documentation
Typedef documentation
using Handle = VkInstance
Opaque handle to an instance object.
using CreateFlags = Bitfield<EUndefined, VkInstanceCreateFlags>
Reserved for future use...
using FPtr_Void = PFN_vkVoidFunction
#include <VaultedVulkan/VV_Types.hpp>
Equivalent to VK_FPtr<void, void>.
Function documentation
static EResult Create(const CreateInfo& _info, const Memory::AllocationCallbacks* _allocator, Handle& _handle)
Create a new Vulkan application instance.
Parameters | |
---|---|
_info | The creation specification structure to use. |
_allocator | Allocator desired (Memory:: |
_handle | Reference to object that will have the created object's handle written to (if successful). |
Returns | Returns EResult code (Indicating how the creation went). |
static void Destroy(Handle _handle, const Memory::AllocationCallbacks* _allocator)
Destroy an application instance of Vulkan.
Parameters | |
---|---|
_handle | Handle of the AppInstance. |
_allocator | Optional: Allocator to use (Memory:: |
static EResult GetVersion(ui32& _versionContainer)
Query the version of application instance-level functionality supported by the implementation.
Parameters | |
---|---|
_versionContainer | The value of version will be written to this object referenced. |
Returns | Returns EResult code (Indicating the version was able to be retrieved). |
template<typename ReturnType>
static std::enable_if<std::bool_constant<std::is_pointer<ReturnType>::value && std::is_function<typename std::remove_pointer<ReturnType>::type>::value>::value, ReturnType>::type GetProcedureAddress(Handle& _handle,
RoCStr _procedureName)
Function pointers for all Vulkan commands can be obtained with this command.
vkGetInstanceProcAddr itself is obtained in a platform- and loader- specific manner. Typically, the loader library will export this command as a function symbol, so applications can link against the loader library, or load it dynamically and look up the symbol using platform-specific APIs.
Note: ReturnType is restricted to only function pointing types.
#include <VaultedVulkan/VV_LogicalDevice.hpp>
template<typename ReturnType>
static std::enable_if<std::bool_constant<std::is_pointer<ReturnType>::value && std::is_function<typename std::remove_pointer<ReturnType>::type>::value>::value, ReturnType>::type GetProcedureAddress(Handle& _appInstance,
RoCStr _procedureName)
Function pointers for all Vulkan commands directly addressed from the device.
In order to support systems with multiple Vulkan implementations, the function pointers returned by vkGetInstanceProcAddr may point to dispatch code that calls a different real implementation for different VkDevice objects or their child objects. The overhead of the internal dispatch for VkDevice objects can be avoided by obtaining device-specific function pointers for any commands that use a device or device-child object as their dispatchable object.
Note: ReturnType is restricted to only function pointing types.