module
APISpec_Devices_and_QueuesChapter 4: Specification
Classes
- struct VV::V1::LogicalDevice::Queue::CreateInfo
- Specification
- struct VV::V1::LogicalDevice::Queue
- Queues handle different types of batched commands for the GPU to complete.
- struct VV::V1::LogicalDevice::Queue2
- struct VV::V1::LogicalDevice::GroupCreateInfo
- struct VV::V1::LogicalDevice::MemoryOverallocationCreateInfo
- struct VV::V1::LogicalDevice::PrivateDataCreateInfo
- Used to reserve private data storage slots.
- struct VV::V1::LogicalDevice::CreateInfo
- Specification
- struct VV::V3::LogicalDevice::Queue
- Queues handle different types of batched commands for the GPU to complete.
- struct VV::V1::LogicalDevice
- Represent logical connections to physical devices.
- struct VV::V2::LogicalDevice
- Represent logical connections to physical devices.
- class VV::V3::LogicalDevice
- Represent logical connections to physical devices.
- struct VV::V1::PhysicalDevice::ConformanceVersion
- Conformance test suite version an implementation is compliant with is described with this.
- struct VV::V1::PhysicalDevice::Group
- struct VV::V1::PhysicalDevice::MemoryProperties
- Specification</
- struct VV::V1::PhysicalDevice::PerformanceCounter::Description
- struct VV::V1::PhysicalDevice::PerformanceCounter
- Specification
- struct VV::V1::PhysicalDevice::Properties::DeviceID
- To query the UUID and LUID of a device, add a VkPhysicalDeviceIDProperties structure to the pNext chain of the VkPhysicalDeviceProperties2 structure.
- struct VV::V1::PhysicalDevice::Properties::PCIBusInfo
- To query the PCI bus information of a physical device, add a VkPhysicalDevicePCIBusInfoPropertiesEXT structure to the pNext chain of the VkPhysicalDeviceProperties2 structure.
- struct VV::V1::PhysicalDevice::Properties::Vulkan11
- To query the properties of the driver corresponding to Vulkan 1.1 functionality, add VkPhysicalDeviceVulkan11Properties to the pNext chain of the VkPhysicalDeviceProperties2 structure.
- struct VV::V1::PhysicalDevice::Properties::Vulkan12
- To query the properties of the driver corresponding to Vulkan 1.2 functionality, add VkPhysicalDeviceVulkan12Properties to the pNext chain of the VkPhysicalDeviceProperties2 structure.
- struct VV::V1::PhysicalDevice::Properties
- Container of query general properties of physical devices once enumerated.
- struct VV::V1::PhysicalDevice::Properties2
- Each structure in Properties and its pNext chain contain members corresponding to properties or implementation-dependent limits.
- struct VV::V1::PhysicalDevice::QueueFamilyProperties
- A set of queues that have common properties and support the same functionality.
- struct VV::V1::PhysicalDevice::QueueFamilyProperties2::Checkpoint
- Additional queue family information can be queried by setting QueueFamilyProperties2::
Next to point to a Checkpoint structure. - struct VV::V1::PhysicalDevice::QueueFamilyProperties2
- Return extended information in a pNext chain of output structures.
- struct VV::V1::PhysicalDevice
- Represents a physical device.
Enums
- enum class EDeviceDiagnosticConfigFlag: ui32 { EnableShaderDebugInfo = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV, EnableResourceTracking = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV, EnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV, VV_SpecifyBitmaskable = VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV }
- Specification
- enum class EDeviceQueueCreateFlag: ui32 { Protected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, VV_SpecifyBitmaskable = VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM }
- Specification
- enum class EDeviceEventType: ui32 { DisplayHotPlug_ = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT }
- Specification
- enum class EDriverID { Proprietary = VK_DRIVER_ID_AMD_PROPRIETARY, OpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE, Mesa_RADV = VK_DRIVER_ID_MESA_RADV, NvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY, IntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, IntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, ImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY, QualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY, ARM_Proprietary = VK_DRIVER_ID_ARM_PROPRIETARY, GoogleSwiftShader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER, GGP_Proprietary = VK_DRIVER_ID_GGP_PROPRIETARY, BroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY, MESA_LLLVM_Pipe = VK_DRIVER_ID_MESA_LLVMPIPE, AMD_Proprietary_KHR = VK_DRIVER_ID_AMD_PROPRIETARY_KHR, AMD_OpenSource_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR, Mesa_RADV_KHR = VK_DRIVER_ID_MESA_RADV_KHR, NvidiaProprietary_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR, IntelProprietaryWindows_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR, IntelOpenSourceMesa_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR, Imagination_Proprietary_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR, QualCommProprietary_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR, ARM_Proprietary_KHR = VK_DRIVER_ID_ARM_PROPRIETARY_KHR, GoogleSwiftShader_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR, GGP_Proprietary_KHR = VK_DRIVER_ID_GGP_PROPRIETARY_KHR, BroadcomProprietary_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR }
- enum class ELogicalDeviceQueueCreateFlag: ui32 { CreateProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, VV_SpecifyBitmaskable = VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM }
- Specification
- enum class EMemoryOverallocationBehaviorAMD: ui32 { Default = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD, Allowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD, Disallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD }
- Specification
- enum class EPerformanceCounterDescriptionFlag: ui32 { PerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR, ConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR, VV_SpecifyBitmaskable = VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR }
- Specification
- enum class EPerformanceCounterScope: ui32 { Performance_CommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, Performance_RenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, Performance_Command = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, Query_Buffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR, Query_RenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR, Query_Command = VK_QUERY_SCOPE_COMMAND_KHR }
- Specification
- enum class EPerformanceCounterStorage: ui32 { VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0, VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1, VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2, VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3, VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4, VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 }
- Specification
- enum class EPerformanceCounterUnit: ui32 { Generic = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR, Percentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR, Nanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR, Bytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR, BytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR, Kelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR, Watts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR, Volts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR, Amps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR, Hertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR, Cycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR }
- Specification
- enum class EPhysicalDeviceType: ui32 { Other = VK_PHYSICAL_DEVICE_TYPE_OTHER, IntergratedGPU = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, DiscreteGPU = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, VirtualGPU = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, CPU = VK_PHYSICAL_DEVICE_TYPE_CPU }
- Supported physical device types.
- enum class EQueueFlag: ui32 { Graphics = VK_QUEUE_GRAPHICS_BIT, Compute = VK_QUEUE_COMPUTE_BIT, Transfer = VK_QUEUE_TRANSFER_BIT, SparseBinding = VK_QUEUE_SPARSE_BINDING_BIT, Protected = VK_QUEUE_PROTECTED_BIT, VV_SpecifyBitmaskable = VK_QUEUE_FLAG_BITS_MAX_ENUM }
- Specification
- enum class EVendorID: ui32 { VIV = VK_VENDOR_ID_VIV, VSI = VK_VENDOR_ID_VSI, KAZAN = VK_VENDOR_ID_KAZAN, CODEPLAY = VK_VENDOR_ID_CODEPLAY, MESA = VK_VENDOR_ID_MESA }
Typedefs
- using Handle = VkDevice
- Specification
- using Handle = VkQueue
- Specification
- using CreateFlags = Bitfield<ECreateFlag, VkDeviceQueueCreateFlags>
- using CreateFlags = Bitfield<EDeviceQueueCreateFlag,VkDeviceQueueCreateFlags>
- Specification
- using Handle = VkPhysicalDevice
- Specification
Functions
- 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.
- static void Get(LogicalDevice::Handle _device, ui32 _queueFamilyIndex, ui32 _queueIndex, Handle& _queueReturn)
- Get a queue handle from a device.
- static void Get(Handle _device, const Queue2* _queueInfo, Queue::Handle* _queue)
- static auto Create(PhysicalDevice::Handle _physicalDevice, const CreateInfo& _info, const Memory::AllocationCallbacks* _allocator, Handle& _device) -> EResult
- A logical device is created as a connection to a physical device.
- static void Destroy(Handle _device, const Memory::AllocationCallbacks* _allocator)
- Destroy a logical device.
- static void GetProperties(Handle _handle, Properties& _properties)
- Query general properties of physical devices once enumerated.
- static void GetProperties2(Handle _handle, Properties2& _properties)
- Query general properties of physical devices once enumerated (Second Ver).
- static void QueryQueueFamilyProperties(Handle _handle, ui32* _numQueueFamilies, QueueFamilyProperties* _queueFamilies)
- Query properties of queues available on a physical device. Reports properties of the queues of the specified physical device.
- static void QueryQueueFamilyProperties2(Handle _handle, ui32* _numProperties, QueueFamilyProperties2* _properties)
- Query properties of queues available on a physical device.
- static auto QueryPerfomranceQueryCounters(Handle _handle, ui32 _queueFamilyIndex, ui32* _numCounters, PerformanceCounter* _counters, PerformanceCounter::Description* _counterDescriptions) -> EResult
- Enumerate the performance query counters available on a queue family of a physical device.
Enum documentation
enum class EDeviceDiagnosticConfigFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EDeviceQueueCreateFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EDeviceEventType: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EDriverID
#include <VaultedVulkan/VV_Enums.hpp>
enum class ELogicalDeviceQueueCreateFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EMemoryOverallocationBehaviorAMD: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EPerformanceCounterDescriptionFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EPerformanceCounterScope: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EPerformanceCounterStorage: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EPerformanceCounterUnit: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EPhysicalDeviceType: ui32
#include <VaultedVulkan/VV_Enums.hpp>
Supported physical device types.
The physical device type is advertised for informational purposes only, and does not directly affect the operation of the system. However, the device type may correlate with other advertised properties or capabilities of the system, such as how many memory heaps there are.
enum class EQueueFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EVendorID: ui32
#include <VaultedVulkan/VV_Enums.hpp>
Typedef documentation
using Handle = VkDevice
#include <VaultedVulkan/VV_LogicalDevice.hpp>
using Handle = VkQueue
#include <VaultedVulkan/VV_LogicalDevice.hpp>
using CreateFlags = Bitfield<ECreateFlag, VkDeviceQueueCreateFlags>
#include <VaultedVulkan/VV_LogicalDevice.hpp>
@ < ="://..////1.2-//.#"></>
using CreateFlags = Bitfield<EDeviceQueueCreateFlag,VkDeviceQueueCreateFlags>
#include <VaultedVulkan/VV_LogicalDevice.hpp>
using Handle = VkPhysicalDevice
Function documentation
static EResult QueryPhysicalDeviceListing(Handle _handle, ui32* _numDevices, PhysicalDevice::Handle* _deviceListing)
Retrieve a list of physical device objects representing the physical devices installed in the system, or get the number of them.
If pPhysicalDevices is NULL, then the number of physical devices available is returned in pPhysicalDeviceCount. Otherwise, pPhysicalDeviceCount must point to a variable set by the user to the number of elements in the pPhysicalDevices array, and on return the variable is overwritten with the number of handles actually written to pPhysicalDevices.
static EResult QueryPhysicalDeviceGroups(Handle _handle, ui32* _numGroups, PhysicalDevice::Group* _groupProperties)
Retrieve a list of physical device groups.
static void Get(LogicalDevice::Handle _device,
ui32 _queueFamilyIndex,
ui32 _queueIndex,
Handle& _queueReturn)
#include <VaultedVulkan/VV_LogicalDevice.hpp>
Get a queue handle from a device.
Parameters | |
---|---|
_device | |
_queueFamilyIndex | |
_queueIndex | |
_queueReturn |
vkGetDeviceQueue must only be used to get queues that were created with the flags parameter of VkDeviceQueueCreateInfo set to zero. To get queues that were created with a non-zero flags parameter use vkGetDeviceQueue2.
static void Get(Handle _device,
const Queue2* _queueInfo,
Queue::Handle* _queue)
#include <VaultedVulkan/VV_LogicalDevice.hpp>
static EResult Create(PhysicalDevice::Handle _physicalDevice,
const CreateInfo& _info,
const Memory::AllocationCallbacks* _allocator,
Handle& _device)
#include <VaultedVulkan/VV_LogicalDevice.hpp>
A logical device is created as a connection to a physical device.
Parameters | |
---|---|
_physicalDevice | |
_info | |
_allocator | |
_device |
static void Destroy(Handle _device,
const Memory::AllocationCallbacks* _allocator)
#include <VaultedVulkan/VV_LogicalDevice.hpp>
Destroy a logical device.
Parameters | |
---|---|
_device | |
_allocator |
To ensure that no work is active on the device, vkDeviceWaitIdle can be used to gate the destruction of the device. Prior to destroying a device, an application is responsible for destroying/freeing any Vulkan objects that were created using that device as the first parameter of the corresponding vkCreate* or vkAllocate* command.
static void GetProperties(Handle _handle, Properties& _properties)
Query general properties of physical devices once enumerated.
static void GetProperties2(Handle _handle, Properties2& _properties)
Query general properties of physical devices once enumerated (Second Ver).
static void QueryQueueFamilyProperties(Handle _handle, ui32* _numQueueFamilies, QueueFamilyProperties* _queueFamilies)
Query properties of queues available on a physical device. Reports properties of the queues of the specified physical device.
If pQueueFamilyProperties is NULL, then the number of queue families available is returned in pQueueFamilyPropertyCount. Implementations must support at least one queue family. Otherwise, pQueueFamilyPropertyCount must point to a variable set by the user to the number of elements in the pQueueFamilyProperties array, and on return the variable is overwritten with the number of structures actually written to pQueueFamilyProperties.
static void QueryQueueFamilyProperties2(Handle _handle, ui32* _numProperties, QueueFamilyProperties2* _properties)
Query properties of queues available on a physical device.
static EResult QueryPerfomranceQueryCounters(Handle _handle, ui32 _queueFamilyIndex, ui32* _numCounters, PerformanceCounter* _counters, PerformanceCounter::Description* _counterDescriptions)
Enumerate the performance query counters available on a queue family of a physical device.