Skip to content

KDGpu::VulkanDevice

Module: Vulkan

VulkanDevice.

#include <vulkan_device.h>

Inherits from KDGpu::ApiDevice

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
virtual std::vector< QueueDescription > getQueues(ResourceManager * resourceManager, const std::vector< QueueRequest > & queueRequests, std::span< AdapterQueueType > queueTypes)
virtual void waitUntilIdle()

Public Attributes

Name
VkDevice device
VulkanResourceManager * vulkanResourceManager
Handle< Adapter_t > adapterHandle
VmaAllocator allocator
VmaAllocator externalAllocator
std::vector< QueueDescription > queueDescriptions
std::vector< VkCommandPool > commandPools
std::vector< VkDescriptorPool > descriptorSetPools
std::unordered_map< VulkanRenderPassKey, Handle< RenderPass_t > > renderPasses
std::unordered_map< VulkanFramebufferKey, Handle< Framebuffer_t > > framebuffers
VkQueryPool timestampQueryPool
PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT
PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT
PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT
PFN_vkCreateRenderPass2 vkCreateRenderPass2
PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR
PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR
PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR
PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR
PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR
PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR
PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR
PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR
PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT
PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT
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
virtual std::vector< QueueDescription > getQueues(
    ResourceManager * resourceManager,
    const std::vector< QueueRequest > & queueRequests,
    std::span< AdapterQueueType > queueTypes
)

Reimplements: KDGpu::ApiDevice::getQueues

function waitUntilIdle

1
virtual void waitUntilIdle()

Reimplements: KDGpu::ApiDevice::waitUntilIdle

Public Attributes Documentation

variable device

1
VkDevice device { VK_NULL_HANDLE };

variable vulkanResourceManager

1
VulkanResourceManager * vulkanResourceManager { nullptr };

variable adapterHandle

1
Handle< Adapter_t > adapterHandle;

variable allocator

1
VmaAllocator allocator { VK_NULL_HANDLE };

variable externalAllocator

1
VmaAllocator externalAllocator { VK_NULL_HANDLE };

variable queueDescriptions

1
std::vector< QueueDescription > queueDescriptions;

variable commandPools

1
std::vector< VkCommandPool > commandPools;

variable descriptorSetPools

1
std::vector< VkDescriptorPool > 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 vkSetDebugUtilsObjectNameEXT

1
PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT { nullptr };

variable vkCmdBeginDebugUtilsLabelEXT

1
PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT { nullptr };

variable vkCmdEndDebugUtilsLabelEXT

1
PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT { nullptr };

variable vkCreateRenderPass2

1
PFN_vkCreateRenderPass2 vkCreateRenderPass2 { nullptr };

variable vkCmdBuildAccelerationStructuresKHR

1
PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR { nullptr };

variable vkGetAccelerationStructureDeviceAddressKHR

1
PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR { nullptr };

variable vkCreateAccelerationStructureKHR

1
PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR { nullptr };

variable vkDestroyAccelerationStructureKHR

1
PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR { nullptr };

variable vkGetAccelerationStructureBuildSizesKHR

1
PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR { nullptr };

variable vkCreateRayTracingPipelinesKHR

1
PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR { nullptr };

variable vkCmdTraceRaysKHR

1
PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR { nullptr };

variable vkGetRayTracingShaderGroupHandlesKHR

1
PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR { nullptr };

variable vkCmdDrawMeshTasksEXT

1
PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT { nullptr };

variable vkCmdDrawMeshTasksIndirectEXT

1
PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT { nullptr };

variable isOwned

1
bool isOwned { true };

Updated on 2024-09-08 at 00:13:09 +0000