OGRE  13.4
Object-Oriented Graphics Rendering Engine
Ogre::VulkanDevice Struct Reference

#include <OgreVulkanDevice.h>

Classes

struct  SelectedQueue
 

Public Member Functions

 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 createPhysicalDevice (uint32 deviceIdx)
 
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)
 
void initQueues (void)
 
void stall (void)
 Waits for the GPU to finish all pending commands. More...
 

Static Public Member Functions

static VkInstance createInstance (FastArray< const char * > &extensions, FastArray< const char * > &layers, PFN_vkDebugReportCallbackEXT debugCallback)
 
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
 
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
 
VkPhysicalDevice mPhysicalDevice
 
VkQueue mPresentQueue
 
FastArray< VkQueueFamilyProperties > mQueueProps
 
VulkanRenderSystemmRenderSystem
 
uint32 mSupportedStages
 
FastArray< VulkanQueuemTransferQueues
 Additional transfer queues to run async transfers (besides the main graphics one) More...
 

Constructor & Destructor Documentation

◆ VulkanDevice()

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

◆ ~VulkanDevice()

Ogre::VulkanDevice::~VulkanDevice ( )

Member Function Documentation

◆ destroyQueues()

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

◆ findGraphicsQueue()

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

◆ findComputeQueue()

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

◆ findTransferQueue()

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

◆ fillQueueCreationInfo()

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

◆ createInstance()

static VkInstance Ogre::VulkanDevice::createInstance ( FastArray< const char * > &  extensions,
FastArray< const char * > &  layers,
PFN_vkDebugReportCallbackEXT  debugCallback 
)
static

◆ createPhysicalDevice()

void Ogre::VulkanDevice::createPhysicalDevice ( uint32  deviceIdx)

◆ createDevice()

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

◆ initQueues()

void Ogre::VulkanDevice::initQueues ( void  )

◆ commitAndNextCommandBuffer()

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

◆ stall()

void Ogre::VulkanDevice::stall ( void  )

Waits for the GPU to finish all pending commands.

Member Data Documentation

◆ mInstance

VkInstance Ogre::VulkanDevice::mInstance

◆ mPhysicalDevice

VkPhysicalDevice Ogre::VulkanDevice::mPhysicalDevice

◆ mDevice

VkDevice Ogre::VulkanDevice::mDevice

◆ mPresentQueue

VkQueue Ogre::VulkanDevice::mPresentQueue

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

◆ mComputeQueues

FastArray<VulkanQueue> Ogre::VulkanDevice::mComputeQueues

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

◆ mTransferQueues

FastArray<VulkanQueue> Ogre::VulkanDevice::mTransferQueues

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

◆ mDeviceProperties

VkPhysicalDeviceProperties Ogre::VulkanDevice::mDeviceProperties

◆ mDeviceMemoryProperties

VkPhysicalDeviceMemoryProperties Ogre::VulkanDevice::mDeviceMemoryProperties

◆ mDeviceFeatures

VkPhysicalDeviceFeatures Ogre::VulkanDevice::mDeviceFeatures

◆ mQueueProps

FastArray<VkQueueFamilyProperties> Ogre::VulkanDevice::mQueueProps

◆ mRenderSystem

VulkanRenderSystem* Ogre::VulkanDevice::mRenderSystem

◆ mSupportedStages

uint32 Ogre::VulkanDevice::mSupportedStages

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