|
MythTV master
|
#include <libmythui/vulkan/mythrendervulkan.h>
Signals | |
| void | DoFreeResources (void) |
| void | PhysicalDeviceLost (void) |
| void | LogicalDeviceLost (void) |
Public Member Functions | |
| MythRenderVulkan () | |
| ~MythRenderVulkan () override | |
| void | SetVulkanWindow (MythWindowVulkan *VulkanWindow) |
| MythWindowVulkan * | GetVulkanWindow (void) |
| void | SetFrameExpected (void) |
| bool | GetFrameExpected (void) const |
| bool | GetFrameStarted (void) const |
| void | EndFrame (void) |
| QStringList | GetDescription (void) override |
| void | preInitResources (void) override |
| void | initResources (void) override |
| void | initSwapChainResources (void) override |
| void | releaseSwapChainResources (void) override |
| void | releaseResources (void) override |
| void | startNextFrame (void) override |
| void | physicalDeviceLost (void) override |
| void | logicalDeviceLost (void) override |
| void | BeginDebugRegion (VkCommandBuffer CommandBuffer, const char *Name, MythVulkan4F Color) |
| void | EndDebugRegion (VkCommandBuffer CommandBuffer) |
| bool | CreateImage (QSize Size, VkFormat Format, VkImageTiling Tiling, VkImageUsageFlags Usage, VkMemoryPropertyFlags Properties, VkImage &Image, VkDeviceMemory &ImageMemory) |
| void | TransitionImageLayout (VkImage &Image, VkImageLayout OldLayout, VkImageLayout NewLayout, VkCommandBuffer CommandBuffer=nullptr) |
| void | CopyBufferToImage (VkBuffer Buffer, VkImage Image, uint32_t Width, uint32_t Height, VkCommandBuffer CommandBuffer=nullptr) |
| bool | CreateBuffer (VkDeviceSize Size, VkBufferUsageFlags Usage, VkMemoryPropertyFlags Properties, VkBuffer &Buffer, VkDeviceMemory &Memory) |
| void | CopyBuffer (VkBuffer Src, VkBuffer Dst, VkDeviceSize Size, VkCommandBuffer CommandBuffer=nullptr) |
| VkPipeline | CreatePipeline (MythShaderVulkan *Shader, QRect Viewport, std::vector< VkDynamicState > Dynamic={ }) |
| VkCommandBuffer | CreateSingleUseCommandBuffer (void) |
| void | FinishSingleUseCommandBuffer (VkCommandBuffer &Buffer) |
| VkSampler | CreateSampler (VkFilter Min, VkFilter Mag) |
| VkPhysicalDeviceFeatures | GetPhysicalDeviceFeatures () const |
| VkPhysicalDeviceLimits | GetPhysicalDeviceLimits () const |
Public Member Functions inherited from MythRender | |
| MythRender (RenderType type) | |
| bool | IsShared (void) const |
| Warning: The reference count can be decremented between the call to this function and the use of it's value. More... | |
| RenderType | Type (void) const |
| bool | IsErrored (void) const |
| QSize | GetSize (void) const |
| virtual QStringList | GetDescription () |
| virtual void | SetViewPort (const QRect, bool=false) |
Public Member Functions inherited from ReferenceCounter | |
| ReferenceCounter (const QString &debugName, bool logDebug=true) | |
| Creates reference counter with an initial value of 1. More... | |
| virtual int | IncrRef (void) |
| Increments reference count. More... | |
| virtual int | DecrRef (void) |
| Decrements reference count and deletes on 0. More... | |
Static Public Member Functions | |
| static MythRenderVulkan * | GetVulkanRender (void) |
Static Public Member Functions inherited from ReferenceCounter | |
| static void | PrintDebug (void) |
| Print out any leaks if that level of debugging is enabled. More... | |
Private Member Functions | |
| std::optional< uint32_t > | FindMemoryType (uint32_t Filter, VkMemoryPropertyFlags Properties) |
| void | BeginFrame (void) |
| void | DebugVulkan (void) |
Private Attributes | |
| MythWindowVulkan * | m_window { nullptr } |
| VkDevice | m_device { nullptr } |
| QVulkanFunctions * | m_funcs { nullptr } |
| QVulkanDeviceFunctions * | m_devFuncs { nullptr } |
| VkPhysicalDeviceFeatures | m_phyDevFeatures { } |
| VkPhysicalDeviceLimits | m_phyDevLimits { } |
| bool | m_frameExpected { false } |
| bool | m_frameStarted { false } |
| QMap< QString, QString > | m_debugInfo |
| MythDebugVulkan * | m_debugMarker { nullptr } |
Additional Inherited Members | |
Protected Member Functions inherited from MythRender | |
| ~MythRender () override=default | |
| virtual void | ReleaseResources (void) |
Protected Member Functions inherited from ReferenceCounter | |
| virtual | ~ReferenceCounter (void) |
| Called on destruction, will warn if object deleted with references in place. More... | |
Protected Attributes inherited from MythRender | |
| RenderType | m_type |
| QSize | m_size |
| bool | m_errored |
Protected Attributes inherited from ReferenceCounter | |
| bool | m_logDebug |
| This is used to suppress creating LoggingItem classes for LoggingItem reference count changes. More... | |
| QAtomicInt | m_referenceCount {1} |
Definition at line 61 of file mythrendervulkan.h.
| MythRenderVulkan::MythRenderVulkan | ( | ) |
Definition at line 103 of file mythrendervulkan.cpp.
|
override |
Definition at line 114 of file mythrendervulkan.cpp.
| void MythRenderVulkan::BeginDebugRegion | ( | VkCommandBuffer | CommandBuffer, |
| const char * | Name, | ||
| MythVulkan4F | Color | ||
| ) |
Definition at line 527 of file mythrendervulkan.cpp.
Referenced by MythPainterVulkan::End(), MythVideoVulkan::PrepareFrame(), and MythVideoOutputVulkan::RenderFrame().
|
private |
Definition at line 330 of file mythrendervulkan.cpp.
Referenced by startNextFrame().
| void MythRenderVulkan::CopyBuffer | ( | VkBuffer | Src, |
| VkBuffer | Dst, | ||
| VkDeviceSize | Size, | ||
| VkCommandBuffer | CommandBuffer = nullptr |
||
| ) |
Definition at line 434 of file mythrendervulkan.cpp.
Referenced by MythIndexBufferVulkan::MythIndexBufferVulkan(), MythVertexBufferVulkan::Update(), and MythBufferVulkan::Update().
| void MythRenderVulkan::CopyBufferToImage | ( | VkBuffer | Buffer, |
| VkImage | Image, | ||
| uint32_t | Width, | ||
| uint32_t | Height, | ||
| VkCommandBuffer | CommandBuffer = nullptr |
||
| ) |
Definition at line 414 of file mythrendervulkan.cpp.
Referenced by MythTextureVulkan::MythTextureVulkan().
| bool MythRenderVulkan::CreateBuffer | ( | VkDeviceSize | Size, |
| VkBufferUsageFlags | Usage, | ||
| VkMemoryPropertyFlags | Properties, | ||
| VkBuffer & | Buffer, | ||
| VkDeviceMemory & | Memory | ||
| ) |
Definition at line 451 of file mythrendervulkan.cpp.
Referenced by MythBufferVulkan::MythBufferVulkan(), MythIndexBufferVulkan::MythIndexBufferVulkan(), MythTextureVulkan::MythTextureVulkan(), and MythUniformBufferVulkan::MythUniformBufferVulkan().
| bool MythRenderVulkan::CreateImage | ( | QSize | Size, |
| VkFormat | Format, | ||
| VkImageTiling | Tiling, | ||
| VkImageUsageFlags | Usage, | ||
| VkMemoryPropertyFlags | Properties, | ||
| VkImage & | Image, | ||
| VkDeviceMemory & | ImageMemory | ||
| ) |
Definition at line 540 of file mythrendervulkan.cpp.
Referenced by MythTextureVulkan::MythTextureVulkan().
| VkPipeline MythRenderVulkan::CreatePipeline | ( | MythShaderVulkan * | Shader, |
| QRect | Viewport, | ||
| std::vector< VkDynamicState > | Dynamic = { } |
||
| ) |
Definition at line 640 of file mythrendervulkan.cpp.
Referenced by MythVisualVulkan::InitialiseVulkan(), and MythPainterVulkan::Ready().
| VkSampler MythRenderVulkan::CreateSampler | ( | VkFilter | Min, |
| VkFilter | Mag | ||
| ) |
Definition at line 494 of file mythrendervulkan.cpp.
Referenced by MythTextureVulkan::MythTextureVulkan().
| VkCommandBuffer MythRenderVulkan::CreateSingleUseCommandBuffer | ( | void | ) |
Definition at line 612 of file mythrendervulkan.cpp.
Referenced by CopyBuffer(), CopyBufferToImage(), MythVideoTextureVulkan::DeleteTextures(), MythPainterVulkan::GetTextureFromCache(), MythTextureVulkan::MythTextureVulkan(), MythVideoVulkan::PrepareFrame(), and TransitionImageLayout().
|
private |
Definition at line 176 of file mythrendervulkan.cpp.
Referenced by initResources().
|
signal |
Referenced by MythPainterVulkan::MythPainterVulkan(), and releaseResources().
| void MythRenderVulkan::EndDebugRegion | ( | VkCommandBuffer | CommandBuffer | ) |
Definition at line 534 of file mythrendervulkan.cpp.
Referenced by MythPainterVulkan::End(), MythVideoVulkan::PrepareFrame(), and MythVideoOutputVulkan::RenderEnd().
| void MythRenderVulkan::EndFrame | ( | void | ) |
Definition at line 356 of file mythrendervulkan.cpp.
Referenced by MythPainterVulkan::End(), and MythVideoVulkan::EndFrame().
|
private |
Definition at line 594 of file mythrendervulkan.cpp.
Referenced by CreateBuffer(), and CreateImage().
| void MythRenderVulkan::FinishSingleUseCommandBuffer | ( | VkCommandBuffer & | Buffer | ) |
Definition at line 628 of file mythrendervulkan.cpp.
Referenced by CopyBuffer(), CopyBufferToImage(), MythVideoTextureVulkan::DeleteTextures(), MythPainterVulkan::End(), MythTextureVulkan::MythTextureVulkan(), MythVideoVulkan::PrepareFrame(), and TransitionImageLayout().
|
overridevirtual |
Reimplemented from MythRender.
Definition at line 163 of file mythrendervulkan.cpp.
| bool MythRenderVulkan::GetFrameExpected | ( | void | ) | const |
Definition at line 306 of file mythrendervulkan.cpp.
Referenced by MythWindowVulkan::event().
| bool MythRenderVulkan::GetFrameStarted | ( | void | ) | const |
Definition at line 311 of file mythrendervulkan.cpp.
| VkPhysicalDeviceFeatures MythRenderVulkan::GetPhysicalDeviceFeatures | ( | ) | const |
Definition at line 517 of file mythrendervulkan.cpp.
Referenced by MythVisualMonoScopeVulkan::InitialiseVulkan().
| VkPhysicalDeviceLimits MythRenderVulkan::GetPhysicalDeviceLimits | ( | ) | const |
Definition at line 522 of file mythrendervulkan.cpp.
Referenced by MythVisualMonoScopeVulkan::InitialiseVulkan().
|
static |
Definition at line 89 of file mythrendervulkan.cpp.
Referenced by MythVideoOutputVulkan::GetAllowedRenderers(), and MythPainterVulkan::Ready().
| MythWindowVulkan * MythRenderVulkan::GetVulkanWindow | ( | void | ) |
Definition at line 127 of file mythrendervulkan.cpp.
Referenced by MythVulkanObject::MythVulkanObject(), and MythPainterVulkan::Ready().
|
override |
Definition at line 137 of file mythrendervulkan.cpp.
|
override |
Definition at line 261 of file mythrendervulkan.cpp.
|
signal |
Referenced by logicalDeviceLost().
|
override |
Definition at line 293 of file mythrendervulkan.cpp.
|
signal |
Referenced by physicalDeviceLost().
|
override |
Definition at line 287 of file mythrendervulkan.cpp.
|
override |
Definition at line 132 of file mythrendervulkan.cpp.
|
override |
Definition at line 271 of file mythrendervulkan.cpp.
|
override |
Definition at line 266 of file mythrendervulkan.cpp.
| void MythRenderVulkan::SetFrameExpected | ( | void | ) |
Definition at line 299 of file mythrendervulkan.cpp.
Referenced by MythPainterVulkan::End(), and MythVideoVulkan::StartFrame().
| void MythRenderVulkan::SetVulkanWindow | ( | MythWindowVulkan * | VulkanWindow | ) |
Definition at line 122 of file mythrendervulkan.cpp.
|
override |
Definition at line 316 of file mythrendervulkan.cpp.
| void MythRenderVulkan::TransitionImageLayout | ( | VkImage & | Image, |
| VkImageLayout | OldLayout, | ||
| VkImageLayout | NewLayout, | ||
| VkCommandBuffer | CommandBuffer = nullptr |
||
| ) |
Definition at line 366 of file mythrendervulkan.cpp.
Referenced by MythTextureVulkan::MythTextureVulkan().
|
private |
Definition at line 134 of file mythrendervulkan.h.
Referenced by DebugVulkan(), and GetDescription().
|
private |
Definition at line 135 of file mythrendervulkan.h.
Referenced by BeginDebugRegion(), EndDebugRegion(), initResources(), and releaseResources().
|
private |
Definition at line 129 of file mythrendervulkan.h.
Referenced by BeginFrame(), CopyBuffer(), CopyBufferToImage(), CreateBuffer(), CreateImage(), CreatePipeline(), CreateSampler(), CreateSingleUseCommandBuffer(), EndFrame(), FinishSingleUseCommandBuffer(), initResources(), releaseResources(), and TransitionImageLayout().
|
private |
Definition at line 127 of file mythrendervulkan.h.
Referenced by CreateBuffer(), CreateImage(), CreatePipeline(), CreateSampler(), CreateSingleUseCommandBuffer(), FinishSingleUseCommandBuffer(), initResources(), and releaseResources().
Definition at line 132 of file mythrendervulkan.h.
Referenced by GetFrameExpected(), releaseResources(), SetFrameExpected(), and startNextFrame().
Definition at line 133 of file mythrendervulkan.h.
Referenced by BeginFrame(), EndFrame(), GetFrameStarted(), and releaseResources().
|
private |
Definition at line 128 of file mythrendervulkan.h.
Referenced by FindMemoryType(), initResources(), and releaseResources().
|
private |
Definition at line 130 of file mythrendervulkan.h.
Referenced by GetPhysicalDeviceFeatures(), initResources(), and releaseResources().
|
private |
Definition at line 131 of file mythrendervulkan.h.
Referenced by GetPhysicalDeviceLimits(), initResources(), and releaseResources().
|
private |
Definition at line 126 of file mythrendervulkan.h.
Referenced by BeginFrame(), CreatePipeline(), CreateSingleUseCommandBuffer(), DebugVulkan(), EndFrame(), FindMemoryType(), FinishSingleUseCommandBuffer(), GetVulkanWindow(), initResources(), SetVulkanWindow(), and startNextFrame().