class
#include <VaultedVulkan/VV_LogicalDevice.hpp>
LogicalDevice Represent logical connections to physical devices.
Contents
This object represents a device created object on the host. As such ownership is tied to this host object. Due to this design, the object has no copy-construction allowed. Instead, default move constructor and assignment has been defined.
Base classes
- struct VV::V2::LogicalDevice
- Represent logical connections to physical devices.
Derived classes
- class VV::V4::LogicalDevice
Public types
- struct Queue
- Queues handle different types of batched commands for the GPU to complete.
-
using Parent = V2::
LogicalDevice
Constructors, destructors, conversion operators
- LogicalDevice()
- Default constructor.
- LogicalDevice(const PhysicalDevice& _physicalDevice)
- Constructor with physical device specified.
-
LogicalDevice(const PhysicalDevice& _physicalDevice,
const Memory::
AllocationCallbacks& _allocator) - Constructor with physical device and allocator specified.
- LogicalDevice(LogicalDevice&& _other) noexcept
- Performs a move operation to transfer ownership of the device object to this host object.
- ~LogicalDevice()
- Destructor for logical device. (Will destroy the device object if handle is not null)
- operator Handle&()
- Implicit conversion to give a reference to its handle.
- operator const Handle&() const
- Implicit conversion to give a readonly reference to its handle.
- operator const Handle*() const
- Implicit conversion to give a pointer to its handle.
Public functions
- void AssignPhysicalDevice(const PhysicalDevice& _physicalDevice)
- Assigns a physical device.
- auto Create(const CreateInfo& _createInfo) -> EResult
- Create logical device.
-
auto Create(const CreateInfo& _createInfo,
const Memory::
AllocationCallbacks& _allocator) -> EResult - Create a logical device (allocator specified).
- auto Create(const PhysicalDevice& _physicalDevice, const CreateInfo& _createInfo) -> EResult
- Create a logical device (physical device specified).
-
auto Create(const PhysicalDevice& _physicalDevice,
const CreateInfo& _createInfo,
const Memory::
AllocationCallbacks& _allocator) -> EResult - Create a logical device (physical device and allocator specified).
- void Destroy()
- Destroy a logical device.
- auto GetPhysicalDevice() const -> const PhysicalDevice&
- provides a readonly reference to a physical device host object.
- auto WaitUntilIdle() const -> EResult
- Wait on the host for the completion of outstanding queue operations for all queues on a given logical device.
-
template<typename ReturnType>auto GetProcedureAddress(RoCStr _procedurename) const -> std::enable_if<std::bool_constant<std::is_pointer<ReturnType>::value && std::is_function<typename std::remove_pointer<ReturnType>::type>::value>::value, ReturnType>::type
- 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.
- auto operator==(const LogicalDevice& _other) const -> bool
- Checks to see if its the same object by checking to see if its the same handle.
- auto operator=(LogicalDevice&& _other) -> LogicalDevice& noexcept
- Performs a move assignment operation to transfer ownership of the device object to this host object.
Protected variables
- Handle handle
- const PhysicalDevice* physicalDevice
-
const Memory::
AllocationCallbacks* allocator