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

#include <OgreVulkanDevice.h>


struct  ExtraVkFeatures
struct  SelectedQueue

Public Member Functions

 VulkanDevice (VkInstance instance, const VulkanExternalDevice &externalDevice, VulkanRenderSystem *renderSystem)
 VulkanDevice (VkInstance instance, uint32 deviceIdx, VulkanRenderSystem *renderSystem)
 ~VulkanDevice ()
void commitAndNextCommandBuffer (SubmissionType::SubmissionType submissionType=SubmissionType::FlushOnly)
void createDevice (FastArray< const char * > &extensions, uint32 maxComputeQueues, uint32 maxTransferQueues)
void fillDeviceFeatures ()
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 stall ()
 Waits for the GPU to finish all pending commands. More...

Static Public Member Functions

static void addExternalInstanceExtensions (FastArray< VkExtensionProperties > &extensions)
static VkInstance createInstance (const String &appName, FastArray< const char * > &extensions, FastArray< const char * > &layers, PFN_vkDebugReportCallbackEXT debugCallback, RenderSystem *renderSystem)
static void destroyQueues (FastArray< VulkanQueue > &queueArray)
static bool hasInstanceExtension (const IdString extension)

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...
VkInstance mInstance
bool mIsExternal
VkPhysicalDevice mPhysicalDevice
VkQueue mPresentQueue
FastArray< VkQueueFamilyProperties > mQueueProps
uint32 mSupportedStages
FastArray< VulkanQueuemTransferQueues
 Additional transfer queues to run async transfers (besides the main graphics one) More...

Constructor & Destructor Documentation

◆ VulkanDevice() [1/2]

Ogre::VulkanDevice::VulkanDevice ( VkInstance  instance,
uint32  deviceIdx,
VulkanRenderSystem renderSystem 

◆ VulkanDevice() [2/2]

Ogre::VulkanDevice::VulkanDevice ( VkInstance  instance,
const VulkanExternalDevice externalDevice,
VulkanRenderSystem renderSystem 

◆ ~VulkanDevice()

Ogre::VulkanDevice::~VulkanDevice ( )

Member Function Documentation

◆ addExternalInstanceExtensions()

static void Ogre::VulkanDevice::addExternalInstanceExtensions ( FastArray< VkExtensionProperties > &  extensions)

◆ commitAndNextCommandBuffer()

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

◆ createDevice()

void Ogre::VulkanDevice::createDevice ( FastArray< const char * > &  extensions,
uint32  maxComputeQueues,
uint32  maxTransferQueues 

◆ createInstance()

static VkInstance Ogre::VulkanDevice::createInstance ( const String appName,
FastArray< const char * > &  extensions,
FastArray< const char * > &  layers,
PFN_vkDebugReportCallbackEXT  debugCallback,
RenderSystem renderSystem 

◆ destroyQueues()

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

◆ fillDeviceFeatures()

void Ogre::VulkanDevice::fillDeviceFeatures ( )

◆ 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

◆ hasInstanceExtension()

static bool Ogre::VulkanDevice::hasInstanceExtension ( const IdString  extension)

◆ initQueues()

void Ogre::VulkanDevice::initQueues ( )

◆ 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

VkInstance Ogre::VulkanDevice::mInstance

◆ mIsExternal

bool Ogre::VulkanDevice::mIsExternal

◆ mPhysicalDevice

VkPhysicalDevice Ogre::VulkanDevice::mPhysicalDevice

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