Skip to content

KDGpu::VulkanDevice

Module: Vulkan

VulkanDevice.

#include <vulkan_device.h>

Public Classes

Name
struct MemoryHandleTypeAndAllocator

Public Functions

Name
VulkanDevice(VkDevice _device, uint32_t _apiVersion, VulkanResourceManager * _vulkanResourceManager, const Handle< Adapter_t > & _adapterHandle, const AdapterFeatures & requestedFeatures, bool _isOwned =true)
VulkanDevice(VulkanDevice & ) =delete
VulkanDevice & operator=(VulkanDevice & ) =delete
VulkanDevice(VulkanDevice && ) =default
VulkanDevice & operator=(VulkanDevice && ) =default
std::vector< QueueDescription > getQueues(VulkanResourceManager * resourceManager, const std::vector< QueueRequest > & queueRequests, std::span< AdapterQueueType > queueTypes)
void waitUntilIdle()
VmaAllocator getOrCreateExternalMemoryAllocator(ExternalMemoryHandleTypeFlags externalMemoryHandleType)
VmaAllocator createMemoryAllocator(ExternalMemoryHandleTypeFlags externalMemoryHandleType =ExternalMemoryHandleTypeFlagBits::None) const
void fillWriteBindGroupDataForBindGroupEntry(WriteBindGroupData & writeBindGroupData, const BindGroupEntry & entry, const VkDescriptorSet & descriptorSet =VK_NULL_HANDLE) const

Public Attributes

Name
VkDevice device
uint32_t apiVersion
AdapterFeatures requestedFeatures
VulkanResourceManager * vulkanResourceManager
Handle< Adapter_t > adapterHandle
VmaAllocator allocator
std::vector< MemoryHandleTypeAndAllocator > externalAllocators
std::vector< QueueDescription > queueDescriptions
std::vector< VkCommandPool > commandPools
std::vector< Handle< BindGroupPool_t > > descriptorSetPools
std::unordered_map< VulkanRenderPassKey, Handle< RenderPass_t > > renderPasses
std::unordered_map< VulkanFramebufferKey, Handle< Framebuffer_t > > framebuffers
VkQueryPool timestampQueryPool
PFN_vkCreateRenderPass2 vkCreateRenderPass2
bool isOwned

Public Functions Documentation

function VulkanDevice

1
2
3
4
5
6
7
8
explicit VulkanDevice(
    VkDevice _device,
    uint32_t _apiVersion,
    VulkanResourceManager * _vulkanResourceManager,
    const Handle< Adapter_t > & _adapterHandle,
    const AdapterFeatures & requestedFeatures,
    bool _isOwned =true
)

function VulkanDevice

1
2
3
VulkanDevice(
    VulkanDevice & 
) =delete

function operator=

1
2
3
VulkanDevice & operator=(
    VulkanDevice & 
) =delete

function VulkanDevice

1
2
3
VulkanDevice(
    VulkanDevice && 
) =default

function operator=

1
2
3
VulkanDevice & operator=(
    VulkanDevice && 
) =default

function getQueues

1
2
3
4
5
std::vector< QueueDescription > getQueues(
    VulkanResourceManager * resourceManager,
    const std::vector< QueueRequest > & queueRequests,
    std::span< AdapterQueueType > queueTypes
)

function waitUntilIdle

1
void waitUntilIdle()

function getOrCreateExternalMemoryAllocator

1
2
3
VmaAllocator getOrCreateExternalMemoryAllocator(
    ExternalMemoryHandleTypeFlags externalMemoryHandleType
)

function createMemoryAllocator

1
2
3
VmaAllocator createMemoryAllocator(
    ExternalMemoryHandleTypeFlags externalMemoryHandleType =ExternalMemoryHandleTypeFlagBits::None
) const

function fillWriteBindGroupDataForBindGroupEntry

1
2
3
4
5
void fillWriteBindGroupDataForBindGroupEntry(
    WriteBindGroupData & writeBindGroupData,
    const BindGroupEntry & entry,
    const VkDescriptorSet & descriptorSet =VK_NULL_HANDLE
) const

Public Attributes Documentation

variable device

1
VkDevice device { VK_NULL_HANDLE };

variable apiVersion

1
uint32_t apiVersion {};

variable requestedFeatures

1
AdapterFeatures requestedFeatures {};

variable vulkanResourceManager

1
VulkanResourceManager * vulkanResourceManager { nullptr };

variable adapterHandle

1
Handle< Adapter_t > adapterHandle;

variable allocator

1
VmaAllocator allocator { VK_NULL_HANDLE };

variable externalAllocators

1
std::vector< MemoryHandleTypeAndAllocator > externalAllocators;

variable queueDescriptions

1
std::vector< QueueDescription > queueDescriptions;

variable commandPools

1
std::vector< VkCommandPool > commandPools;

variable descriptorSetPools

1
std::vector< Handle< BindGroupPool_t > > descriptorSetPools;

variable renderPasses

1
std::unordered_map< VulkanRenderPassKey, Handle< RenderPass_t > > renderPasses;

variable framebuffers

1
std::unordered_map< VulkanFramebufferKey, Handle< Framebuffer_t > > framebuffers;

variable timestampQueryPool

1
VkQueryPool timestampQueryPool { VK_NULL_HANDLE };

variable vkCreateRenderPass2

1
PFN_vkCreateRenderPass2 vkCreateRenderPass2 { nullptr };

variable isOwned

1
bool isOwned { true };

Updated on 2025-07-01 at 00:02:08 +0000