Foundation
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
Foundation::RHI::VulkanDevice Class Reference

#include <Device.hpp>

Inheritance diagram for Foundation::RHI::VulkanDevice:
Foundation::RHI::RHIDevice Foundation::RHI::RHIObject

Public Member Functions

 VulkanDevice (VulkanApplication const &app, vk::raii::PhysicalDevice physicalDevice, Native::NativeWindow *window)
 
 ~VulkanDevice () override
 
void DebugLogDeviceInfo () const
 
void DebugLogAllocatorInfo () const
 https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/blob/master/src/VulkanSample.cpp#L1694
 
RHIDeviceQueueGetDeviceQueue (RHIDeviceQueueType type) const override
 
Span< RHIResourceFormat constGetSwapchainSupportedFormats () const override
 
Span< RHISwapchainPresentMode constGetSwapchainSupportedPresentModes () const override
 
RHIDeviceScopedObjectHandle< RHISwapchainCreateSwapchain (RHISwapchain::SwapchainDesc const &desc) override
 
RHISwapchainGetSwapchain (Handle handle) const override
 
void DestroySwapchain (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHIPipelineStateCreatePipelineState (RHIPipelineState::PipelineStateDesc const &desc) override
 
RHIPipelineStateGetPipelineState (Handle handle) const override
 
void DestroyPipelineState (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHIShaderModuleCreateShaderModule (RHIShaderModule::ShaderModuleDesc const &desc) override
 
RHIShaderModuleGetShaderModule (Handle handle) const override
 
void DestroyShaderModule (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHICommandPoolCreateCommandPool (RHICommandPool::PoolDesc desc) override
 
RHICommandPoolGetCommandPool (Handle handle) const override
 
void DestroyCommandPool (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHIDeviceSemaphoreCreateSemaphore (bool is_timeline) override
 
RHIDeviceSemaphoreGetSemaphore (Handle handle) const override
 
void DestroySemaphore (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHIDeviceFenceCreateFence (bool signaled) override
 
RHIDeviceFenceGetFence (Handle handle) const override
 
void DestroyFence (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHIBufferCreateBuffer (RHIBufferDesc const &desc) override
 
RHIBufferGetBuffer (Handle handle) const override
 
void DestroyBuffer (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHITextureCreateTexture (RHITextureDesc const &desc) override
 
RHITextureGetImage (Handle handle) const override
 
void DestroyImage (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHIDeviceDescriptorSetLayoutCreateDescriptorSetLayout (RHIDeviceDescriptorSetLayoutDesc const &desc) override
 
RHIDeviceDescriptorSetLayoutGetDescriptorSetLayout (Handle handle) const override
 
void DestroyDescriptorSetLayout (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHIDeviceDescriptorPoolCreateDescriptorPool (RHIDeviceDescriptorPool::PoolDesc const &desc) override
 
RHIDeviceDescriptorPoolGetDescriptorPool (Handle handle) const override
 
void DestroyDescriptorPool (Handle handle) override
 
RHIDeviceScopedObjectHandle< RHIDeviceSamplerCreateSampler (RHIDeviceSampler::SamplerDesc const &desc) override
 
RHIDeviceSamplerGetSampler (Handle handle) const override
 
void DestroySampler (Handle handle) override
 
void ResetFences (Span< const RHIDeviceObjectHandle< RHIDeviceFence > > fences) override
 
void WaitForFences (Span< const RHIDeviceObjectHandle< RHIDeviceFence > > fences, bool wait_all, size_t timeout) override
 
void SignalTimelineSemaphores (Span< const Pair< RHIDeviceObjectHandle< RHIDeviceSemaphore >, size_t > > semaphores) override
 
void WaitForTimelineSemaphores (Span< const Pair< RHIDeviceObjectHandle< RHIDeviceSemaphore >, size_t > > semaphores, size_t timeout) override
 
void WaitIdle () const override
 
AllocatorGetAllocator () const
 
vk::AllocationCallbacks constGetVkAllocatorCallbacks () const
 
auto constGetVkQueues () const
 
auto constGetVkDevice () const
 
auto constGetVkSurface () const
 
auto constGetVkPhysicalDevice () const
 
auto constGetVkAllocator () const
 
void DebugSetObjectName (const char *name) override
 
- Public Member Functions inherited from Foundation::RHI::RHIDevice
 RHIDevice (RHIApplication const &app)
 
- Public Member Functions inherited from Foundation::RHI::RHIObject
 RHIObject ()=default
 
 RHIObject (RHIObject const &)=delete
 
RHIObjectoperator= (const RHIObject &)=delete
 
 RHIObject (RHIObject &&)=delete
 
RHIObjectoperator= (RHIObject &&)=delete
 
virtual ~RHIObject ()=default
 

Private Attributes

const VulkanApplicationmApp
 
vk::PhysicalDeviceProperties mProperties
 
vk::raii::PhysicalDevice mPhysicalDevice { nullptr }
 
vk::raii::Device mDevice { nullptr }
 
vk::raii::SurfaceKHR mSurface { nullptr }
 
Vector< RHIResourceFormatmSwapchainFormats
 
Vector< RHISwapchainPresentModemSwapchainPresentModes
 
VmaAllocator mVkAllocator { nullptr }
 
RHIObjectPool mStorage
 
UniquePtr< VulkanDeviceQueuesmQueues { nullptr }
 
Native::NativeWindowwindow
 

Additional Inherited Members

- Protected Attributes inherited from Foundation::RHI::RHIDevice
const RHIApplicationmApp
 

Constructor & Destructor Documentation

◆ VulkanDevice()

VulkanDevice::VulkanDevice ( VulkanApplication const app,
vk::raii::PhysicalDevice  physicalDevice,
Native::NativeWindow window 
)

◆ ~VulkanDevice()

VulkanDevice::~VulkanDevice ( )
override

Member Function Documentation

◆ CreateBuffer()

RHIDeviceScopedObjectHandle< RHIBuffer > VulkanDevice::CreateBuffer ( RHIBufferDesc const desc)
overridevirtual

◆ CreateCommandPool()

RHIDeviceScopedObjectHandle< RHICommandPool > VulkanDevice::CreateCommandPool ( RHICommandPool::PoolDesc  desc)
overridevirtual

◆ CreateDescriptorPool()

RHIDeviceScopedObjectHandle< RHIDeviceDescriptorPool > VulkanDevice::CreateDescriptorPool ( RHIDeviceDescriptorPool::PoolDesc const desc)
overridevirtual

◆ CreateDescriptorSetLayout()

RHIDeviceScopedObjectHandle< RHIDeviceDescriptorSetLayout > VulkanDevice::CreateDescriptorSetLayout ( RHIDeviceDescriptorSetLayoutDesc const desc)
overridevirtual

◆ CreateFence()

auto VulkanDevice::CreateFence ( bool  signaled)
overridevirtual

◆ CreatePipelineState()

RHIDeviceScopedObjectHandle< RHIPipelineState > VulkanDevice::CreatePipelineState ( RHIPipelineState::PipelineStateDesc const desc)
overridevirtual

◆ CreateSampler()

RHIDeviceScopedObjectHandle< RHIDeviceSampler > VulkanDevice::CreateSampler ( RHIDeviceSampler::SamplerDesc const desc)
overridevirtual

◆ CreateSemaphore()

RHIDeviceScopedObjectHandle< RHIDeviceSemaphore > VulkanDevice::CreateSemaphore ( bool  is_timeline)
overridevirtual

◆ CreateShaderModule()

RHIDeviceScopedObjectHandle< RHIShaderModule > VulkanDevice::CreateShaderModule ( RHIShaderModule::ShaderModuleDesc const desc)
overridevirtual

◆ CreateSwapchain()

RHIDeviceScopedObjectHandle< RHISwapchain > VulkanDevice::CreateSwapchain ( RHISwapchain::SwapchainDesc const desc)
overridevirtual

◆ CreateTexture()

RHIDeviceScopedObjectHandle< RHITexture > VulkanDevice::CreateTexture ( RHITextureDesc const desc)
overridevirtual

◆ DebugLogAllocatorInfo()

void VulkanDevice::DebugLogAllocatorInfo ( ) const

◆ DebugLogDeviceInfo()

void VulkanDevice::DebugLogDeviceInfo ( ) const

◆ DebugSetObjectName()

void VulkanDevice::DebugSetObjectName ( const char name)
overridevirtual

◆ DestroyBuffer()

void VulkanDevice::DestroyBuffer ( Handle  handle)
overridevirtual

◆ DestroyCommandPool()

void VulkanDevice::DestroyCommandPool ( Handle  handle)
overridevirtual

◆ DestroyDescriptorPool()

void VulkanDevice::DestroyDescriptorPool ( Handle  handle)
overridevirtual

◆ DestroyDescriptorSetLayout()

void VulkanDevice::DestroyDescriptorSetLayout ( Handle  handle)
overridevirtual

◆ DestroyFence()

void VulkanDevice::DestroyFence ( Handle  handle)
overridevirtual

◆ DestroyImage()

void VulkanDevice::DestroyImage ( Handle  handle)
overridevirtual

◆ DestroyPipelineState()

void VulkanDevice::DestroyPipelineState ( Handle  handle)
overridevirtual

◆ DestroySampler()

void VulkanDevice::DestroySampler ( Handle  handle)
overridevirtual

◆ DestroySemaphore()

void VulkanDevice::DestroySemaphore ( Handle  handle)
overridevirtual

◆ DestroyShaderModule()

void VulkanDevice::DestroyShaderModule ( Handle  handle)
overridevirtual

◆ DestroySwapchain()

void VulkanDevice::DestroySwapchain ( Handle  handle)
overridevirtual

◆ GetAllocator()

Allocator * VulkanDevice::GetAllocator ( ) const

◆ GetBuffer()

RHIBuffer * VulkanDevice::GetBuffer ( Handle  handle) const
overridevirtual

◆ GetCommandPool()

RHICommandPool * VulkanDevice::GetCommandPool ( Handle  handle) const
overridevirtual

◆ GetDescriptorPool()

RHIDeviceDescriptorPool * VulkanDevice::GetDescriptorPool ( Handle  handle) const
overridevirtual

◆ GetDescriptorSetLayout()

RHIDeviceDescriptorSetLayout * VulkanDevice::GetDescriptorSetLayout ( Handle  handle) const
overridevirtual

◆ GetDeviceQueue()

RHIDeviceQueue * VulkanDevice::GetDeviceQueue ( RHIDeviceQueueType  type) const
overridevirtual

◆ GetFence()

RHIDeviceFence * VulkanDevice::GetFence ( Handle  handle) const
overridevirtual

◆ GetImage()

RHITexture * VulkanDevice::GetImage ( Handle  handle) const
overridevirtual

◆ GetPipelineState()

RHIPipelineState * VulkanDevice::GetPipelineState ( Handle  handle) const
overridevirtual

◆ GetSampler()

RHIDeviceSampler * VulkanDevice::GetSampler ( Handle  handle) const
overridevirtual

◆ GetSemaphore()

RHIDeviceSemaphore * VulkanDevice::GetSemaphore ( Handle  handle) const
overridevirtual

◆ GetShaderModule()

RHIShaderModule * VulkanDevice::GetShaderModule ( Handle  handle) const
overridevirtual

◆ GetSwapchain()

RHISwapchain * VulkanDevice::GetSwapchain ( Handle  handle) const
overridevirtual

◆ GetSwapchainSupportedFormats()

Span< RHIResourceFormat const > VulkanDevice::GetSwapchainSupportedFormats ( ) const
overridevirtual

◆ GetSwapchainSupportedPresentModes()

Span< RHISwapchainPresentMode const > VulkanDevice::GetSwapchainSupportedPresentModes ( ) const
overridevirtual

◆ GetVkAllocator()

auto const & Foundation::RHI::VulkanDevice::GetVkAllocator ( ) const
inline

◆ GetVkAllocatorCallbacks()

vk::AllocationCallbacks const & VulkanDevice::GetVkAllocatorCallbacks ( ) const

◆ GetVkDevice()

auto const & Foundation::RHI::VulkanDevice::GetVkDevice ( ) const
inline

◆ GetVkPhysicalDevice()

auto const & Foundation::RHI::VulkanDevice::GetVkPhysicalDevice ( ) const
inline

◆ GetVkQueues()

auto const & Foundation::RHI::VulkanDevice::GetVkQueues ( ) const
inline

◆ GetVkSurface()

auto const & Foundation::RHI::VulkanDevice::GetVkSurface ( ) const
inline

◆ ResetFences()

void VulkanDevice::ResetFences ( Span< const RHIDeviceObjectHandle< RHIDeviceFence > >  fences)
overridevirtual

◆ SignalTimelineSemaphores()

void VulkanDevice::SignalTimelineSemaphores ( Span< const Pair< RHIDeviceObjectHandle< RHIDeviceSemaphore >, size_t > >  semaphores)
overridevirtual

◆ WaitForFences()

void VulkanDevice::WaitForFences ( Span< const RHIDeviceObjectHandle< RHIDeviceFence > >  fences,
bool  wait_all,
size_t  timeout 
)
overridevirtual

◆ WaitForTimelineSemaphores()

void VulkanDevice::WaitForTimelineSemaphores ( Span< const Pair< RHIDeviceObjectHandle< RHIDeviceSemaphore >, size_t > >  semaphores,
size_t  timeout 
)
overridevirtual

◆ WaitIdle()

void VulkanDevice::WaitIdle ( ) const
overridevirtual

Member Data Documentation

◆ mApp

const VulkanApplication& Foundation::RHI::VulkanDevice::mApp
private

◆ mDevice

vk::raii::Device Foundation::RHI::VulkanDevice::mDevice { nullptr }
private

◆ mPhysicalDevice

vk::raii::PhysicalDevice Foundation::RHI::VulkanDevice::mPhysicalDevice { nullptr }
private

◆ mProperties

vk::PhysicalDeviceProperties Foundation::RHI::VulkanDevice::mProperties
private

◆ mQueues

UniquePtr<VulkanDeviceQueues> Foundation::RHI::VulkanDevice::mQueues { nullptr }
private

◆ mStorage

RHIObjectPool Foundation::RHI::VulkanDevice::mStorage
private

◆ mSurface

vk::raii::SurfaceKHR Foundation::RHI::VulkanDevice::mSurface { nullptr }
private

◆ mSwapchainFormats

Vector<RHIResourceFormat> Foundation::RHI::VulkanDevice::mSwapchainFormats
private

◆ mSwapchainPresentModes

Vector<RHISwapchainPresentMode> Foundation::RHI::VulkanDevice::mSwapchainPresentModes
private

◆ mVkAllocator

VmaAllocator Foundation::RHI::VulkanDevice::mVkAllocator { nullptr }
private

◆ window

Native::NativeWindow* Foundation::RHI::VulkanDevice::window
private

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