Open 3D Engine Atom Gem API Reference 26.05.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::Vulkan::Device Class Referencefinal

Inherits AZ::RHI::Device, and AZ::RHI::RHISystemNotificationBus::Handler.

Public Types

enum class  ShadingRateImageMode : uint32_t { None , ImageAttachment , DensityMap }
 

Public Member Functions

 AZ_CLASS_ALLOCATOR (Device, AZ::SystemAllocator)
 
 AZ_RTTI (Device, "C77D578F-841F-41B0-84BB-EE5430FCF8BC", Base)
 
VkDevice GetNativeDevice () const
 
const GladVulkanContext & GetContext () const
 
uint32_t FindMemoryTypeIndex (VkMemoryPropertyFlags memoryPropertyFlags, uint32_t memoryTypeBits) const
 
VkMemoryRequirements GetImageMemoryRequirements (const RHI::ImageDescriptor &descriptor)
 
VkMemoryRequirements GetBufferMemoryRequirements (const RHI::BufferDescriptor &descriptor)
 
const VkPhysicalDeviceFeatures & GetEnabledDevicesFeatures () const
 
VkPipelineStageFlags GetSupportedPipelineStageFlags () const
 
VkImageUsageFlags GetImageUsageFromFormat (RHI::Format format) const
 
CommandQueueContext & GetCommandQueueContext ()
 
const CommandQueueContext & GetCommandQueueContext () const
 
SemaphoreAllocator & GetSemaphoreAllocator ()
 
SwapChainSemaphoreAllocator & GetSwapChainSemaphoreAllocator ()
 
const AZStd::vector< VkQueueFamilyProperties > & GetQueueFamilyProperties () const
 
AsyncUploadQueue & GetAsyncUploadQueue ()
 
BindlessDescriptorPool & GetBindlessDescriptorPool ()
 
RHI::Ptr< Buffer > AcquireStagingBuffer (AZStd::size_t byteCount, AZStd::size_t alignment=1)
 
void QueueForRelease (RHI::Ptr< RHI::Object > object)
 
RHI::Ptr< RenderPass > AcquireRenderPass (const RenderPass::Descriptor &descriptor)
 
RHI::Ptr< Framebuffer > AcquireFramebuffer (const Framebuffer::Descriptor &descriptor)
 
RHI::Ptr< DescriptorSetLayout > AcquireDescriptorSetLayout (const DescriptorSetLayout::Descriptor &descriptor)
 
RHI::Ptr< Sampler > AcquireSampler (const Sampler::Descriptor &descriptor)
 
RHI::Ptr< PipelineLayout > AcquirePipelineLayout (const PipelineLayout::Descriptor &descriptor)
 
RHI::Ptr< CommandList > AcquireCommandList (uint32_t familyQueueIndex, VkCommandBufferLevel level=VK_COMMAND_BUFFER_LEVEL_PRIMARY)
 
RHI::Ptr< CommandList > AcquireCommandList (RHI::HardwareQueueClass queueClass, VkCommandBufferLevel level=VK_COMMAND_BUFFER_LEVEL_PRIMARY)
 
uint32_t GetCurrentFrameIndex () const
 
NullDescriptorManager & GetNullDescriptorManager ()
 
BufferCreateInfo BuildBufferCreateInfo (const RHI::BufferDescriptor &descriptor) const
 Fills a vulkan buffer create info with the provided descriptor.
 
ImageCreateInfo BuildImageCreateInfo (const RHI::ImageDescriptor &descriptor) const
 Fills a vulkan image create info with the provided descriptor.
 
ShadingRateImageMode GetImageShadingRateMode () const
 
RHI::Ptr< BufferPool > GetConstantBufferPool ()
 
VmaAllocator & GetVmaAllocator ()
 Returns the VMA allocator used by this device.
 
- Public Member Functions inherited from AZ::RHI::Device
 AZ_RTTI (Device, "{C7E70BE4-3AA5-4214-91E6-52A8ECC31A34}", Object)
 
bool IsInitialized () const
 Returns whether the device is initialized.
 
ResultCode Init (int deviceIndex, PhysicalDevice &physicalDevice)
 
ResultCode BeginFrame ()
 
ResultCode EndFrame ()
 
ResultCode WaitForIdle ()
 
ResultCode CompileMemoryStatistics (MemoryStatistics &memoryStatistics, MemoryStatisticsReportFlags reportFlags)
 
ResultCode UpdateCpuTimingStatistics () const
 
const PhysicalDevice & GetPhysicalDevice () const
 Returns the physical device associated with this device.
 
int GetDeviceIndex () const
 Returns the device index.
 
const DeviceDescriptor & GetDescriptor () const
 Returns the descriptor associated with the device.
 
const DeviceFeatures & GetFeatures () const
 Returns the set of features supported by this device.
 
const DeviceLimits & GetLimits () const
 Returns the set of hardware limits for this device.
 
const ResourcePoolDatabase & GetResourcePoolDatabase () const
 Returns the resource pool database.
 
ResourcePoolDatabase & GetResourcePoolDatabase ()
 Returns the mutable resource pool database.
 
FormatCapabilities GetFormatCapabilities (Format format) const
 Returns a union of all capabilities of a specific format.
 
Format GetNearestSupportedFormat (Format requestedFormat, FormatCapabilities requestedCapabilities) const
 Return the nearest supported format for this device.
 
ResultCode InitBindlessSrg (RHI::Ptr< RHI::ShaderResourceGroupLayout > bindlessSrgLayout)
 
virtual RHI::ResultCode CompactSRGMemory ()
 Allows the back-ends to compact SRG related memory if applicable.
 
bool WasDeviceRemoved ()
 
void SetDeviceRemoved ()
 
void SetLastExecutingScope (const AZStd::string_view scopeName)
 
AZStd::string_view GetLastExecutingScope () const
 
- Public Member Functions inherited from AZ::RHI::Object
 AZ_RTTI (Object, "{E43378F1-2331-4173-94B8-990ED20E6003}")
 
void SetName (const Name &name)
 Sets the name of the object.
 
const Name & GetName () const
 Returns the name set on the object by SetName.
 
uint32_t use_count ()
 Returns the current use count of the object.
 

Static Public Member Functions

static RHI::Ptr< Device > Create ()
 
static StringList GetRequiredLayers ()
 
static StringList GetRequiredExtensions ()
 

Protected Member Functions

void OnRHISystemInitialized () override
 
- Protected Member Functions inherited from AZ::RHI::Object
void add_ref () const
 
void release () const
 

Additional Inherited Members

- Protected Types inherited from AZ::RHI::Device
using FormatCapabilitiesList = AZStd::array< FormatCapabilities, static_cast< uint32_t >(Format::Count)>
 
- Protected Attributes inherited from AZ::RHI::Device
DeviceFeatures m_features
 
DeviceLimits m_limits
 
ResourcePoolDatabase m_resourcePoolDatabase
 
DeviceDescriptor m_descriptor
 
- Protected Attributes inherited from AZ::RHI::Object
AZStd::atomic_int m_useCount = 0
 

Constructor & Destructor Documentation

◆ ~Device()

AZ::Vulkan::Device::~Device ( )
virtual

Reimplemented from AZ::RHI::Device.


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