Diligent Engine  v.2.4.g
Public Types | Public Member Functions | Static Public Member Functions | List of all members
VulkanUtilities::VulkanLogicalDevice Class Reference

#include <VulkanLogicalDevice.hpp>

Inheritance diagram for VulkanUtilities::VulkanLogicalDevice:

Public Types

using ExtensionFeatures = VulkanPhysicalDevice::ExtensionFeatures
 

Public Member Functions

 VulkanLogicalDevice (const VulkanLogicalDevice &)=delete
 
 VulkanLogicalDevice (VulkanLogicalDevice &&)=delete
 
VulkanLogicalDeviceoperator= (const VulkanLogicalDevice &)=delete
 
VulkanLogicalDeviceoperator= (VulkanLogicalDevice &&)=delete
 
 ~VulkanLogicalDevice ()
 
std::shared_ptr< VulkanLogicalDeviceGetSharedPtr ()
 
std::shared_ptr< const VulkanLogicalDeviceGetSharedPtr () const
 
VkQueue GetQueue (uint32_t queueFamilyIndex, uint32_t queueIndex)
 
VkDevice GetVkDevice () const
 
void WaitIdle () const
 
CommandPoolWrapper CreateCommandPool (const VkCommandPoolCreateInfo &CmdPoolCI, const char *DebugName="") const
 
BufferWrapper CreateBuffer (const VkBufferCreateInfo &BufferCI, const char *DebugName="") const
 
BufferViewWrapper CreateBufferView (const VkBufferViewCreateInfo &BuffViewCI, const char *DebugName="") const
 
ImageWrapper CreateImage (const VkImageCreateInfo &ImageCI, const char *DebugName="") const
 
ImageViewWrapper CreateImageView (const VkImageViewCreateInfo &ImageViewCI, const char *DebugName="") const
 
SamplerWrapper CreateSampler (const VkSamplerCreateInfo &SamplerCI, const char *DebugName="") const
 
FenceWrapper CreateFence (const VkFenceCreateInfo &FenceCI, const char *DebugName="") const
 
RenderPassWrapper CreateRenderPass (const VkRenderPassCreateInfo &RenderPassCI, const char *DebugName="") const
 
DeviceMemoryWrapper AllocateDeviceMemory (const VkMemoryAllocateInfo &AllocInfo, const char *DebugName="") const
 
PipelineWrapper CreateComputePipeline (const VkComputePipelineCreateInfo &PipelineCI, VkPipelineCache cache, const char *DebugName="") const
 
PipelineWrapper CreateGraphicsPipeline (const VkGraphicsPipelineCreateInfo &PipelineCI, VkPipelineCache cache, const char *DebugName="") const
 
PipelineWrapper CreateRayTracingPipeline (const VkRayTracingPipelineCreateInfoKHR &PipelineCI, VkPipelineCache cache, const char *DebugName="") const
 
ShaderModuleWrapper CreateShaderModule (const VkShaderModuleCreateInfo &ShaderModuleCI, const char *DebugName="") const
 
PipelineLayoutWrapper CreatePipelineLayout (const VkPipelineLayoutCreateInfo &LayoutCI, const char *DebugName="") const
 
FramebufferWrapper CreateFramebuffer (const VkFramebufferCreateInfo &FramebufferCI, const char *DebugName="") const
 
DescriptorPoolWrapper CreateDescriptorPool (const VkDescriptorPoolCreateInfo &DescrPoolCI, const char *DebugName="") const
 
DescriptorSetLayoutWrapper CreateDescriptorSetLayout (const VkDescriptorSetLayoutCreateInfo &LayoutCI, const char *DebugName="") const
 
SemaphoreWrapper CreateSemaphore (const VkSemaphoreCreateInfo &SemaphoreCI, const char *DebugName="") const
 
QueryPoolWrapper CreateQueryPool (const VkQueryPoolCreateInfo &QueryPoolCI, const char *DebugName="") const
 
AccelStructWrapper CreateAccelStruct (const VkAccelerationStructureCreateInfoKHR &CI, const char *DebugName="") const
 
VkCommandBuffer AllocateVkCommandBuffer (const VkCommandBufferAllocateInfo &AllocInfo, const char *DebugName="") const
 
VkDescriptorSet AllocateVkDescriptorSet (const VkDescriptorSetAllocateInfo &AllocInfo, const char *DebugName="") const
 
void ReleaseVulkanObject (CommandPoolWrapper &&CmdPool) const
 
void ReleaseVulkanObject (BufferWrapper &&Buffer) const
 
void ReleaseVulkanObject (BufferViewWrapper &&BufferView) const
 
void ReleaseVulkanObject (ImageWrapper &&Image) const
 
void ReleaseVulkanObject (ImageViewWrapper &&ImageView) const
 
void ReleaseVulkanObject (SamplerWrapper &&Sampler) const
 
void ReleaseVulkanObject (FenceWrapper &&Fence) const
 
void ReleaseVulkanObject (RenderPassWrapper &&RenderPass) const
 
void ReleaseVulkanObject (DeviceMemoryWrapper &&Memory) const
 
void ReleaseVulkanObject (PipelineWrapper &&Pipeline) const
 
void ReleaseVulkanObject (ShaderModuleWrapper &&ShaderModule) const
 
void ReleaseVulkanObject (PipelineLayoutWrapper &&PipelineLayout) const
 
void ReleaseVulkanObject (FramebufferWrapper &&Framebuffer) const
 
void ReleaseVulkanObject (DescriptorPoolWrapper &&DescriptorPool) const
 
void ReleaseVulkanObject (DescriptorSetLayoutWrapper &&DescriptorSetLayout) const
 
void ReleaseVulkanObject (SemaphoreWrapper &&Semaphore) const
 
void ReleaseVulkanObject (QueryPoolWrapper &&QueryPool) const
 
void ReleaseVulkanObject (AccelStructWrapper &&AccelStruct) const
 
void FreeDescriptorSet (VkDescriptorPool Pool, VkDescriptorSet Set) const
 
void FreeCommandBuffer (VkCommandPool Pool, VkCommandBuffer CmdBuffer) const
 
VkMemoryRequirements GetBufferMemoryRequirements (VkBuffer vkBuffer) const
 
VkMemoryRequirements GetImageMemoryRequirements (VkImage vkImage) const
 
VkDeviceAddress GetAccelerationStructureDeviceAddress (VkAccelerationStructureKHR AS) const
 
VkResult BindBufferMemory (VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const
 
VkResult BindImageMemory (VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const
 
VkResult MapMemory (VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void **ppData) const
 
void UnmapMemory (VkDeviceMemory memory) const
 
VkResult InvalidateMappedMemoryRanges (uint32_t memoryRangeCount, const VkMappedMemoryRange *pMemoryRanges) const
 
VkResult FlushMappedMemoryRanges (uint32_t memoryRangeCount, const VkMappedMemoryRange *pMemoryRanges) const
 
VkResult GetFenceStatus (VkFence fence) const
 
VkResult ResetFence (VkFence fence) const
 
VkResult WaitForFences (uint32_t fenceCount, const VkFence *pFences, VkBool32 waitAll, uint64_t timeout) const
 
void UpdateDescriptorSets (uint32_t descriptorWriteCount, const VkWriteDescriptorSet *pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet *pDescriptorCopies) const
 
VkResult ResetCommandPool (VkCommandPool vkCmdPool, VkCommandPoolResetFlags flags=0) const
 
VkResult ResetDescriptorPool (VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags=0) const
 
VkResult GetQueryPoolResults (VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void *pData, VkDeviceSize stride, VkQueryResultFlags flags) const
 
void GetAccelerationStructureBuildSizes (const VkAccelerationStructureBuildGeometryInfoKHR &BuildInfo, const uint32_t *pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR &SizeInfo) const
 
VkResult GetRayTracingShaderGroupHandles (VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void *pData) const
 
VkPipelineStageFlags GetEnabledShaderStages () const
 
const VkPhysicalDeviceFeatures & GetEnabledFeatures () const
 
const ExtensionFeaturesGetEnabledExtFeatures () const
 

Static Public Member Functions

static std::shared_ptr< VulkanLogicalDeviceCreate (const VulkanPhysicalDevice &PhysicalDevice, const VkDeviceCreateInfo &DeviceCI, const ExtensionFeatures &EnabledExtFeatures, const VkAllocationCallbacks *vkAllocator)
 

Member Typedef Documentation

◆ ExtensionFeatures

Constructor & Destructor Documentation

◆ VulkanLogicalDevice() [1/2]

VulkanUtilities::VulkanLogicalDevice::VulkanLogicalDevice ( const VulkanLogicalDevice )
delete

◆ VulkanLogicalDevice() [2/2]

VulkanUtilities::VulkanLogicalDevice::VulkanLogicalDevice ( VulkanLogicalDevice &&  )
delete

◆ ~VulkanLogicalDevice()

VulkanUtilities::VulkanLogicalDevice::~VulkanLogicalDevice ( )

Member Function Documentation

◆ AllocateDeviceMemory()

DeviceMemoryWrapper VulkanUtilities::VulkanLogicalDevice::AllocateDeviceMemory ( const VkMemoryAllocateInfo &  AllocInfo,
const char *  DebugName = "" 
) const

◆ AllocateVkCommandBuffer()

VkCommandBuffer VulkanUtilities::VulkanLogicalDevice::AllocateVkCommandBuffer ( const VkCommandBufferAllocateInfo &  AllocInfo,
const char *  DebugName = "" 
) const

◆ AllocateVkDescriptorSet()

VkDescriptorSet VulkanUtilities::VulkanLogicalDevice::AllocateVkDescriptorSet ( const VkDescriptorSetAllocateInfo &  AllocInfo,
const char *  DebugName = "" 
) const

◆ BindBufferMemory()

VkResult VulkanUtilities::VulkanLogicalDevice::BindBufferMemory ( VkBuffer  buffer,
VkDeviceMemory  memory,
VkDeviceSize  memoryOffset 
) const

◆ BindImageMemory()

VkResult VulkanUtilities::VulkanLogicalDevice::BindImageMemory ( VkImage  image,
VkDeviceMemory  memory,
VkDeviceSize  memoryOffset 
) const

◆ Create()

std::shared_ptr< VulkanLogicalDevice > VulkanUtilities::VulkanLogicalDevice::Create ( const VulkanPhysicalDevice PhysicalDevice,
const VkDeviceCreateInfo &  DeviceCI,
const ExtensionFeatures EnabledExtFeatures,
const VkAllocationCallbacks *  vkAllocator 
)
static

◆ CreateAccelStruct()

AccelStructWrapper VulkanUtilities::VulkanLogicalDevice::CreateAccelStruct ( const VkAccelerationStructureCreateInfoKHR &  CI,
const char *  DebugName = "" 
) const

◆ CreateBuffer()

BufferWrapper VulkanUtilities::VulkanLogicalDevice::CreateBuffer ( const VkBufferCreateInfo &  BufferCI,
const char *  DebugName = "" 
) const

◆ CreateBufferView()

BufferViewWrapper VulkanUtilities::VulkanLogicalDevice::CreateBufferView ( const VkBufferViewCreateInfo &  BuffViewCI,
const char *  DebugName = "" 
) const

◆ CreateCommandPool()

CommandPoolWrapper VulkanUtilities::VulkanLogicalDevice::CreateCommandPool ( const VkCommandPoolCreateInfo &  CmdPoolCI,
const char *  DebugName = "" 
) const

◆ CreateComputePipeline()

PipelineWrapper VulkanUtilities::VulkanLogicalDevice::CreateComputePipeline ( const VkComputePipelineCreateInfo &  PipelineCI,
VkPipelineCache  cache,
const char *  DebugName = "" 
) const

◆ CreateDescriptorPool()

DescriptorPoolWrapper VulkanUtilities::VulkanLogicalDevice::CreateDescriptorPool ( const VkDescriptorPoolCreateInfo &  DescrPoolCI,
const char *  DebugName = "" 
) const

◆ CreateDescriptorSetLayout()

DescriptorSetLayoutWrapper VulkanUtilities::VulkanLogicalDevice::CreateDescriptorSetLayout ( const VkDescriptorSetLayoutCreateInfo &  LayoutCI,
const char *  DebugName = "" 
) const

◆ CreateFence()

FenceWrapper VulkanUtilities::VulkanLogicalDevice::CreateFence ( const VkFenceCreateInfo &  FenceCI,
const char *  DebugName = "" 
) const

◆ CreateFramebuffer()

FramebufferWrapper VulkanUtilities::VulkanLogicalDevice::CreateFramebuffer ( const VkFramebufferCreateInfo &  FramebufferCI,
const char *  DebugName = "" 
) const

◆ CreateGraphicsPipeline()

PipelineWrapper VulkanUtilities::VulkanLogicalDevice::CreateGraphicsPipeline ( const VkGraphicsPipelineCreateInfo &  PipelineCI,
VkPipelineCache  cache,
const char *  DebugName = "" 
) const

◆ CreateImage()

ImageWrapper VulkanUtilities::VulkanLogicalDevice::CreateImage ( const VkImageCreateInfo &  ImageCI,
const char *  DebugName = "" 
) const

◆ CreateImageView()

ImageViewWrapper VulkanUtilities::VulkanLogicalDevice::CreateImageView ( const VkImageViewCreateInfo &  ImageViewCI,
const char *  DebugName = "" 
) const

◆ CreatePipelineLayout()

PipelineLayoutWrapper VulkanUtilities::VulkanLogicalDevice::CreatePipelineLayout ( const VkPipelineLayoutCreateInfo &  LayoutCI,
const char *  DebugName = "" 
) const

◆ CreateQueryPool()

QueryPoolWrapper VulkanUtilities::VulkanLogicalDevice::CreateQueryPool ( const VkQueryPoolCreateInfo &  QueryPoolCI,
const char *  DebugName = "" 
) const

◆ CreateRayTracingPipeline()

PipelineWrapper VulkanUtilities::VulkanLogicalDevice::CreateRayTracingPipeline ( const VkRayTracingPipelineCreateInfoKHR &  PipelineCI,
VkPipelineCache  cache,
const char *  DebugName = "" 
) const

◆ CreateRenderPass()

RenderPassWrapper VulkanUtilities::VulkanLogicalDevice::CreateRenderPass ( const VkRenderPassCreateInfo &  RenderPassCI,
const char *  DebugName = "" 
) const

◆ CreateSampler()

SamplerWrapper VulkanUtilities::VulkanLogicalDevice::CreateSampler ( const VkSamplerCreateInfo &  SamplerCI,
const char *  DebugName = "" 
) const

◆ CreateSemaphore()

SemaphoreWrapper VulkanUtilities::VulkanLogicalDevice::CreateSemaphore ( const VkSemaphoreCreateInfo &  SemaphoreCI,
const char *  DebugName = "" 
) const

◆ CreateShaderModule()

ShaderModuleWrapper VulkanUtilities::VulkanLogicalDevice::CreateShaderModule ( const VkShaderModuleCreateInfo &  ShaderModuleCI,
const char *  DebugName = "" 
) const

◆ FlushMappedMemoryRanges()

VkResult VulkanUtilities::VulkanLogicalDevice::FlushMappedMemoryRanges ( uint32_t  memoryRangeCount,
const VkMappedMemoryRange *  pMemoryRanges 
) const

◆ FreeCommandBuffer()

void VulkanUtilities::VulkanLogicalDevice::FreeCommandBuffer ( VkCommandPool  Pool,
VkCommandBuffer  CmdBuffer 
) const

◆ FreeDescriptorSet()

void VulkanUtilities::VulkanLogicalDevice::FreeDescriptorSet ( VkDescriptorPool  Pool,
VkDescriptorSet  Set 
) const

◆ GetAccelerationStructureBuildSizes()

void VulkanUtilities::VulkanLogicalDevice::GetAccelerationStructureBuildSizes ( const VkAccelerationStructureBuildGeometryInfoKHR &  BuildInfo,
const uint32_t *  pMaxPrimitiveCounts,
VkAccelerationStructureBuildSizesInfoKHR &  SizeInfo 
) const

◆ GetAccelerationStructureDeviceAddress()

VkDeviceAddress VulkanUtilities::VulkanLogicalDevice::GetAccelerationStructureDeviceAddress ( VkAccelerationStructureKHR  AS) const

◆ GetBufferMemoryRequirements()

VkMemoryRequirements VulkanUtilities::VulkanLogicalDevice::GetBufferMemoryRequirements ( VkBuffer  vkBuffer) const

◆ GetEnabledExtFeatures()

const ExtensionFeatures& VulkanUtilities::VulkanLogicalDevice::GetEnabledExtFeatures ( ) const
inline

◆ GetEnabledFeatures()

const VkPhysicalDeviceFeatures& VulkanUtilities::VulkanLogicalDevice::GetEnabledFeatures ( ) const
inline

◆ GetEnabledShaderStages()

VkPipelineStageFlags VulkanUtilities::VulkanLogicalDevice::GetEnabledShaderStages ( ) const
inline

◆ GetFenceStatus()

VkResult VulkanUtilities::VulkanLogicalDevice::GetFenceStatus ( VkFence  fence) const

◆ GetImageMemoryRequirements()

VkMemoryRequirements VulkanUtilities::VulkanLogicalDevice::GetImageMemoryRequirements ( VkImage  vkImage) const

◆ GetQueryPoolResults()

VkResult VulkanUtilities::VulkanLogicalDevice::GetQueryPoolResults ( VkQueryPool  queryPool,
uint32_t  firstQuery,
uint32_t  queryCount,
size_t  dataSize,
void *  pData,
VkDeviceSize  stride,
VkQueryResultFlags  flags 
) const
inline

◆ GetQueue()

VkQueue VulkanUtilities::VulkanLogicalDevice::GetQueue ( uint32_t  queueFamilyIndex,
uint32_t  queueIndex 
)

◆ GetRayTracingShaderGroupHandles()

VkResult VulkanUtilities::VulkanLogicalDevice::GetRayTracingShaderGroupHandles ( VkPipeline  pipeline,
uint32_t  firstGroup,
uint32_t  groupCount,
size_t  dataSize,
void *  pData 
) const

◆ GetSharedPtr() [1/2]

std::shared_ptr<VulkanLogicalDevice> VulkanUtilities::VulkanLogicalDevice::GetSharedPtr ( )
inline

◆ GetSharedPtr() [2/2]

std::shared_ptr<const VulkanLogicalDevice> VulkanUtilities::VulkanLogicalDevice::GetSharedPtr ( ) const
inline

◆ GetVkDevice()

VkDevice VulkanUtilities::VulkanLogicalDevice::GetVkDevice ( ) const
inline

◆ InvalidateMappedMemoryRanges()

VkResult VulkanUtilities::VulkanLogicalDevice::InvalidateMappedMemoryRanges ( uint32_t  memoryRangeCount,
const VkMappedMemoryRange *  pMemoryRanges 
) const

◆ MapMemory()

VkResult VulkanUtilities::VulkanLogicalDevice::MapMemory ( VkDeviceMemory  memory,
VkDeviceSize  offset,
VkDeviceSize  size,
VkMemoryMapFlags  flags,
void **  ppData 
) const

◆ operator=() [1/2]

VulkanLogicalDevice& VulkanUtilities::VulkanLogicalDevice::operator= ( const VulkanLogicalDevice )
delete

◆ operator=() [2/2]

VulkanLogicalDevice& VulkanUtilities::VulkanLogicalDevice::operator= ( VulkanLogicalDevice &&  )
delete

◆ ReleaseVulkanObject() [1/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( AccelStructWrapper &&  AccelStruct) const

◆ ReleaseVulkanObject() [2/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( BufferViewWrapper &&  BufferView) const

◆ ReleaseVulkanObject() [3/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( BufferWrapper &&  Buffer) const

◆ ReleaseVulkanObject() [4/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( CommandPoolWrapper &&  CmdPool) const

◆ ReleaseVulkanObject() [5/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( DescriptorPoolWrapper &&  DescriptorPool) const

◆ ReleaseVulkanObject() [6/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( DescriptorSetLayoutWrapper &&  DescriptorSetLayout) const

◆ ReleaseVulkanObject() [7/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( DeviceMemoryWrapper &&  Memory) const

◆ ReleaseVulkanObject() [8/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( FenceWrapper &&  Fence) const

◆ ReleaseVulkanObject() [9/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( FramebufferWrapper &&  Framebuffer) const

◆ ReleaseVulkanObject() [10/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( ImageViewWrapper &&  ImageView) const

◆ ReleaseVulkanObject() [11/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( ImageWrapper &&  Image) const

◆ ReleaseVulkanObject() [12/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( PipelineLayoutWrapper &&  PipelineLayout) const

◆ ReleaseVulkanObject() [13/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( PipelineWrapper &&  Pipeline) const

◆ ReleaseVulkanObject() [14/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( QueryPoolWrapper &&  QueryPool) const

◆ ReleaseVulkanObject() [15/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( RenderPassWrapper &&  RenderPass) const

◆ ReleaseVulkanObject() [16/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( SamplerWrapper &&  Sampler) const

◆ ReleaseVulkanObject() [17/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( SemaphoreWrapper &&  Semaphore) const

◆ ReleaseVulkanObject() [18/18]

void VulkanUtilities::VulkanLogicalDevice::ReleaseVulkanObject ( ShaderModuleWrapper &&  ShaderModule) const

◆ ResetCommandPool()

VkResult VulkanUtilities::VulkanLogicalDevice::ResetCommandPool ( VkCommandPool  vkCmdPool,
VkCommandPoolResetFlags  flags = 0 
) const

◆ ResetDescriptorPool()

VkResult VulkanUtilities::VulkanLogicalDevice::ResetDescriptorPool ( VkDescriptorPool  descriptorPool,
VkDescriptorPoolResetFlags  flags = 0 
) const

◆ ResetFence()

VkResult VulkanUtilities::VulkanLogicalDevice::ResetFence ( VkFence  fence) const

◆ UnmapMemory()

void VulkanUtilities::VulkanLogicalDevice::UnmapMemory ( VkDeviceMemory  memory) const

◆ UpdateDescriptorSets()

void VulkanUtilities::VulkanLogicalDevice::UpdateDescriptorSets ( uint32_t  descriptorWriteCount,
const VkWriteDescriptorSet *  pDescriptorWrites,
uint32_t  descriptorCopyCount,
const VkCopyDescriptorSet *  pDescriptorCopies 
) const

◆ WaitForFences()

VkResult VulkanUtilities::VulkanLogicalDevice::WaitForFences ( uint32_t  fenceCount,
const VkFence *  pFences,
VkBool32  waitAll,
uint64_t  timeout 
) const

◆ WaitIdle()

void VulkanUtilities::VulkanLogicalDevice::WaitIdle ( ) const

The documentation for this class was generated from the following files: