OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::VulkanDevice Struct Reference

#include <OgreVulkanDevice.h>

Classes

struct  ExtraVkFeatures
 
struct  SelectedQueue
 

Public Member Functions

 VulkanDevice (VulkanRenderSystem *renderSystem)
 
 ~VulkanDevice ()
 
void commitAndNextCommandBuffer (SubmissionType::SubmissionType submissionType=SubmissionType::FlushOnly)
 
void createDevice (const FastArray< VkExtensionProperties > &availableExtensions, uint32 maxComputeQueues, uint32 maxTransferQueues)
 
void destroy ()
 
void fillDeviceFeatures ()
 
bool fillDeviceFeatures2 (VkPhysicalDeviceFeatures2 &deviceFeatures2, VkPhysicalDevice16BitStorageFeatures &device16BitStorageFeatures, VkPhysicalDeviceShaderFloat16Int8Features &deviceShaderFloat16Int8Features)
 
void fillQueueCreationInfo (uint32 maxComputeQueues, uint32 maxTransferQueues, FastArray< VkDeviceQueueCreateInfo > &outQueueCiArray)
 
void findComputeQueue (FastArray< uint32 > &inOutUsedQueueCount, uint32 maxNumQueues)
 
void findGraphicsQueue (FastArray< uint32 > &inOutUsedQueueCount)
 
void findTransferQueue (FastArray< uint32 > &inOutUsedQueueCount, uint32 maxNumQueues)
 
bool hasDeviceExtension (const IdString extension) const
 
void initQueues ()
 
void setPhysicalDevice (const std::shared_ptr< VulkanInstance > &instance, const VulkanPhysicalDevice &physicalDevice, const VulkanExternalDevice *externalDevice)
 
void stall ()
 Waits for the GPU to finish all pending commands. More...
 

Static Public Member Functions

static void destroyQueues (FastArray< VulkanQueue > &queueArray)
 

Public Attributes

FastArray< VulkanQueuemComputeQueues
 Additional compute queues to run async compute (besides the main graphics one) More...
 
VkDevice mDevice
 
FastArray< IdStringmDeviceExtensions
 Extensions requested when created. Sorted. More...
 
ExtraVkFeatures mDeviceExtraFeatures
 
VkPhysicalDeviceFeatures mDeviceFeatures
 
VkPhysicalDeviceMemoryProperties mDeviceMemoryProperties
 
VkPhysicalDeviceProperties mDeviceProperties
 
VulkanQueue mGraphicsQueue
 Graphics queue is guaranteed by spec to also be able to run compute and transfer A GPU may not have a graphics queue though (Ogre can't run there) More...
 
std::shared_ptr< VulkanInstancemInstance
 
bool mIsDeviceLost
 
bool mIsExternal
 
VkPhysicalDevice mPhysicalDevice
 
VkPipelineCache mPipelineCache
 
VkQueue mPresentQueue
 
FastArray< VkQueueFamilyProperties > mQueueProps
 
VulkanRenderSystemmRenderSystem
 
uint32 mSupportedStages
 
FastArray< VulkanQueuemTransferQueues
 Additional transfer queues to run async transfers (besides the main graphics one) More...
 
VulkanVaoManagermVaoManager
 

Constructor & Destructor Documentation

◆ VulkanDevice()

Ogre::VulkanDevice::VulkanDevice ( VulkanRenderSystem renderSystem)

◆ ~VulkanDevice()

Ogre::VulkanDevice::~VulkanDevice ( )

Member Function Documentation

◆ commitAndNextCommandBuffer()

void Ogre::VulkanDevice::commitAndNextCommandBuffer ( SubmissionType::SubmissionType  submissionType = SubmissionType::FlushOnly)

◆ createDevice()

void Ogre::VulkanDevice::createDevice ( const FastArray< VkExtensionProperties > &  availableExtensions,
uint32  maxComputeQueues,
uint32  maxTransferQueues 
)

◆ destroy()

void Ogre::VulkanDevice::destroy ( )

◆ destroyQueues()

static void Ogre::VulkanDevice::destroyQueues ( FastArray< VulkanQueue > &  queueArray)
static

◆ fillDeviceFeatures()

void Ogre::VulkanDevice::fillDeviceFeatures ( )

◆ fillDeviceFeatures2()

bool Ogre::VulkanDevice::fillDeviceFeatures2 ( VkPhysicalDeviceFeatures2 &  deviceFeatures2,
VkPhysicalDevice16BitStorageFeatures &  device16BitStorageFeatures,
VkPhysicalDeviceShaderFloat16Int8Features &  deviceShaderFloat16Int8Features 
)

◆ fillQueueCreationInfo()

void Ogre::VulkanDevice::fillQueueCreationInfo ( uint32  maxComputeQueues,
uint32  maxTransferQueues,
FastArray< VkDeviceQueueCreateInfo > &  outQueueCiArray 
)

◆ findComputeQueue()

void Ogre::VulkanDevice::findComputeQueue ( FastArray< uint32 > &  inOutUsedQueueCount,
uint32  maxNumQueues 
)

◆ findGraphicsQueue()

void Ogre::VulkanDevice::findGraphicsQueue ( FastArray< uint32 > &  inOutUsedQueueCount)

◆ findTransferQueue()

void Ogre::VulkanDevice::findTransferQueue ( FastArray< uint32 > &  inOutUsedQueueCount,
uint32  maxNumQueues 
)

◆ hasDeviceExtension()

bool Ogre::VulkanDevice::hasDeviceExtension ( const IdString  extension) const

◆ initQueues()

void Ogre::VulkanDevice::initQueues ( )

◆ setPhysicalDevice()

void Ogre::VulkanDevice::setPhysicalDevice ( const std::shared_ptr< VulkanInstance > &  instance,
const VulkanPhysicalDevice physicalDevice,
const VulkanExternalDevice externalDevice 
)

◆ stall()

void Ogre::VulkanDevice::stall ( )

Waits for the GPU to finish all pending commands.

Member Data Documentation

◆ mComputeQueues

FastArray<VulkanQueue> Ogre::VulkanDevice::mComputeQueues

Additional compute queues to run async compute (besides the main graphics one)

◆ mDevice

VkDevice Ogre::VulkanDevice::mDevice

◆ mDeviceExtensions

FastArray<IdString> Ogre::VulkanDevice::mDeviceExtensions

Extensions requested when created. Sorted.

◆ mDeviceExtraFeatures

ExtraVkFeatures Ogre::VulkanDevice::mDeviceExtraFeatures

◆ mDeviceFeatures

VkPhysicalDeviceFeatures Ogre::VulkanDevice::mDeviceFeatures

◆ mDeviceMemoryProperties

VkPhysicalDeviceMemoryProperties Ogre::VulkanDevice::mDeviceMemoryProperties

◆ mDeviceProperties

VkPhysicalDeviceProperties Ogre::VulkanDevice::mDeviceProperties

◆ mGraphicsQueue

VulkanQueue Ogre::VulkanDevice::mGraphicsQueue

Graphics queue is guaranteed by spec to also be able to run compute and transfer A GPU may not have a graphics queue though (Ogre can't run there)

◆ mInstance

std::shared_ptr<VulkanInstance> Ogre::VulkanDevice::mInstance

◆ mIsDeviceLost

bool Ogre::VulkanDevice::mIsDeviceLost

◆ mIsExternal

bool Ogre::VulkanDevice::mIsExternal

◆ mPhysicalDevice

VkPhysicalDevice Ogre::VulkanDevice::mPhysicalDevice

◆ mPipelineCache

VkPipelineCache Ogre::VulkanDevice::mPipelineCache

◆ mPresentQueue

VkQueue Ogre::VulkanDevice::mPresentQueue

◆ mQueueProps

FastArray<VkQueueFamilyProperties> Ogre::VulkanDevice::mQueueProps

◆ mRenderSystem

VulkanRenderSystem* Ogre::VulkanDevice::mRenderSystem

◆ mSupportedStages

uint32 Ogre::VulkanDevice::mSupportedStages

◆ mTransferQueues

FastArray<VulkanQueue> Ogre::VulkanDevice::mTransferQueues

Additional transfer queues to run async transfers (besides the main graphics one)

◆ mVaoManager

VulkanVaoManager* Ogre::VulkanDevice::mVaoManager

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