OGRE-Next
2.3
Object-Oriented Graphics Rendering Engine
|
#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) |
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 VkInstance | createInstance (const String &appName, FastArray< const char * > &extensions, FastArray< const char * > &layers, PFN_vkDebugReportCallbackEXT debugCallback, RenderSystem *renderSystem) |
static void | destroyQueues (FastArray< VulkanQueue > &queueArray) |
Public Attributes | |
FastArray< VulkanQueue > | mComputeQueues |
Additional compute queues to run async compute (besides the main graphics one) More... | |
VkDevice | mDevice |
FastArray< IdString > | mDeviceExtensions |
Extensions requested when created. Sorted. More... | |
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 |
VulkanRenderSystem * | mRenderSystem |
uint32 | mSupportedStages |
FastArray< VulkanQueue > | mTransferQueues |
Additional transfer queues to run async transfers (besides the main graphics one) More... | |
VulkanVaoManager * | mVaoManager |
Ogre::VulkanDevice::VulkanDevice | ( | VkInstance | instance, |
uint32 | deviceIdx, | ||
VulkanRenderSystem * | renderSystem | ||
) |
Ogre::VulkanDevice::~VulkanDevice | ( | ) |
void Ogre::VulkanDevice::commitAndNextCommandBuffer | ( | SubmissionType::SubmissionType | submissionType = SubmissionType::FlushOnly | ) |
void Ogre::VulkanDevice::createDevice | ( | FastArray< const char * > & | extensions, |
uint32 | maxComputeQueues, | ||
uint32 | maxTransferQueues | ||
) |
|
static |
void Ogre::VulkanDevice::createPhysicalDevice | ( | uint32 | deviceIdx | ) |
|
static |
void Ogre::VulkanDevice::fillQueueCreationInfo | ( | uint32 | maxComputeQueues, |
uint32 | maxTransferQueues, | ||
FastArray< VkDeviceQueueCreateInfo > & | outQueueCiArray | ||
) |
void Ogre::VulkanDevice::findComputeQueue | ( | FastArray< uint32 > & | inOutUsedQueueCount, |
uint32 | maxNumQueues | ||
) |
void Ogre::VulkanDevice::findTransferQueue | ( | FastArray< uint32 > & | inOutUsedQueueCount, |
uint32 | maxNumQueues | ||
) |
bool Ogre::VulkanDevice::hasDeviceExtension | ( | const IdString | extension | ) | const |
void Ogre::VulkanDevice::initQueues | ( | ) |
void Ogre::VulkanDevice::stall | ( | ) |
Waits for the GPU to finish all pending commands.
FastArray<VulkanQueue> Ogre::VulkanDevice::mComputeQueues |
Additional compute queues to run async compute (besides the main graphics one)
VkDevice Ogre::VulkanDevice::mDevice |
Extensions requested when created. Sorted.
VkPhysicalDeviceFeatures Ogre::VulkanDevice::mDeviceFeatures |
VkPhysicalDeviceMemoryProperties Ogre::VulkanDevice::mDeviceMemoryProperties |
VkPhysicalDeviceProperties Ogre::VulkanDevice::mDeviceProperties |
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)
VkInstance Ogre::VulkanDevice::mInstance |
VkPhysicalDevice Ogre::VulkanDevice::mPhysicalDevice |
VkQueue Ogre::VulkanDevice::mPresentQueue |
FastArray<VkQueueFamilyProperties> Ogre::VulkanDevice::mQueueProps |
VulkanRenderSystem* Ogre::VulkanDevice::mRenderSystem |
uint32 Ogre::VulkanDevice::mSupportedStages |
FastArray<VulkanQueue> Ogre::VulkanDevice::mTransferQueues |
Additional transfer queues to run async transfers (besides the main graphics one)
VulkanVaoManager* Ogre::VulkanDevice::mVaoManager |