OGRE-Next 4.0.0unstable
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
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, VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT &deviceCacheControlFeatures)
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 ()
bool isDeviceLost () const
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.
void stallIgnoringDeviceLost ()

Static Public Member Functions

static void destroyQueues (FastArray< VulkanQueue > &queueArray)

Public Attributes

FastArray< VulkanQueue > mComputeQueues
 Additional compute queues to run async compute (besides the main graphics one).
VkDevice mDevice
FastArray< IdString > mDeviceExtensions
 Extensions requested when created. Sorted.
ExtraVkFeatures mDeviceExtraFeatures
VkPhysicalDeviceFeatures mDeviceFeatures
VkResult mDeviceLostReason
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).
std::shared_ptr< VulkanInstance > mInstance
bool mIsExternal
VkPhysicalDevice mPhysicalDevice
VkPipelineCache mPipelineCache
VkQueue mPresentQueue
FastArray< VkQueueFamilyProperties > mQueueProps
VulkanRenderSystem * mRenderSystem
uint32 mSupportedStages
FastArray< VulkanQueue > mTransferQueues
 Additional transfer queues to run async transfers (besides the main graphics one).
VulkanVaoManager * mVaoManager

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()

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

◆ fillDeviceFeatures()

void Ogre::VulkanDevice::fillDeviceFeatures ( )

◆ fillDeviceFeatures2()

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

◆ 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 ( )

◆ isDeviceLost()

bool Ogre::VulkanDevice::isDeviceLost ( ) const
inline

References mDeviceLostReason.

◆ 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.

◆ stallIgnoringDeviceLost()

void Ogre::VulkanDevice::stallIgnoringDeviceLost ( )

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

◆ mDeviceLostReason

VkResult Ogre::VulkanDevice::mDeviceLostReason

Referenced by isDeviceLost().

◆ 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

◆ 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: