Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
#include "qrhivulkan_p.h"
#include <qpa/qplatformvulkaninstance.h>
#include "vk_mem_alloc.h"
#include <qmath.h>
#include <QVulkanFunctions>
#include <QtGui/qwindow.h>
#include <optional>
Go to the source code of this file.
Classes | |
struct | MultiViewRenderPassSetupHelper |
struct | QVkPipelineCacheDataHeader |
Macros | |
#define | VMA_IMPLEMENTATION |
#define | VMA_DYNAMIC_VULKAN_FUNCTIONS 1 |
#define | VMA_STATIC_VULKAN_FUNCTIONS 0 |
#define | VMA_RECORDING_ENABLED 0 |
#define | VMA_DEDICATED_ALLOCATION 0 |
Variables | |
static QVulkanInstance * | globalVulkanInstance |
static struct { ... } | qvk_sampleCounts [] |
#define VMA_DEDICATED_ALLOCATION 0 |
Definition at line 11 of file qrhivulkan.cpp.
#define VMA_DYNAMIC_VULKAN_FUNCTIONS 1 |
Definition at line 8 of file qrhivulkan.cpp.
#define VMA_IMPLEMENTATION |
Definition at line 7 of file qrhivulkan.cpp.
#define VMA_RECORDING_ENABLED 0 |
Definition at line 10 of file qrhivulkan.cpp.
#define VMA_STATIC_VULKAN_FUNCTIONS 0 |
Definition at line 9 of file qrhivulkan.cpp.
|
inlinestatic |
Definition at line 3302 of file qrhivulkan.cpp.
Referenced by QRhiVulkan::recordTransitionPassResources(), QRhiVulkan::trackedBufferBarrier(), QRhiVulkan::trackedImageBarrier(), QRhiVulkan::trackedRegisterBuffer(), and QRhiVulkan::trackedRegisterTexture().
|
inline |
\variable QRhiVulkanRenderPassNativeHandles::renderPass
The VkRenderPass object.
Definition at line 287 of file qrhivulkan.cpp.
|
inlinestaticconstexpr |
Definition at line 1174 of file qrhivulkan.cpp.
References isDepthTextureFormat().
Referenced by QVkTexture::finishCreate(), QVkTexture::perLevelImageViewForLoadStore(), QRhiVulkan::recordTransitionPassResources(), and QRhiVulkan::trackedImageBarrier().
|
inlinestatic |
Definition at line 6855 of file qrhivulkan.cpp.
Referenced by QVkRenderPassDescriptor::isCompatible().
|
static |
Definition at line 1331 of file qrhivulkan.cpp.
Referenced by QRhiVulkan::createDefaultRenderPass(), QRhiVulkan::createOffscreenRenderPass(), and QVkRenderPassDescriptor::newCompatibleRenderPassDescriptor().
|
inlinestatic |
Definition at line 6060 of file qrhivulkan.cpp.
References toVkCompareOp(), and toVkStencilOp().
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 7951 of file qrhivulkan.cpp.
References QRhiSwapChain::HDR10, QRhiSwapChain::HDRExtendedDisplayP3Linear, and QRhiSwapChain::HDRExtendedSrgbLinear.
Referenced by QVkSwapChain::ensureSurface(), and QVkSwapChain::isFormatSupported().
|
inlinestaticconstexpr |
Definition at line 1160 of file qrhivulkan.cpp.
References QRhiTexture::D16, QRhiTexture::D24, QRhiTexture::D24S8, and QRhiTexture::D32F.
Referenced by aspectMaskForTextureFormat().
|
inlinestatic |
Definition at line 8021 of file qrhivulkan.cpp.
Referenced by QVkSwapChain::ensureSurface().
|
inlinestatic |
Definition at line 5634 of file qrhivulkan.cpp.
References QVkCommandBuffer::currentTarget, Q_ASSERT, QRHI_RES, QVkCommandBuffer::recordingPass, QVkCommandBuffer::RenderPass, QRhiResource::resourceType(), QRhiResource::SwapChainRenderTarget, and QRhiResource::TextureRenderTarget.
Referenced by QRhiVulkan::beginExternal(), and QRhiVulkan::endExternal().
|
inline |
Definition at line 2959 of file qrhivulkan.cpp.
References it.
Referenced by QRhiVulkan::dispatch().
|
static |
Definition at line 4092 of file qrhivulkan.cpp.
References QRhiVulkan::DeferredReleaseEntry::buffer, i, QVK_FRAMES_IN_FLIGHT, toVmaAllocation(), and toVmaAllocator().
Referenced by QRhiVulkan::executeDeferredReleases().
|
static |
Definition at line 4100 of file qrhivulkan.cpp.
References QRhiVulkan::DeferredReleaseEntry::renderBuffer.
Referenced by QRhiVulkan::executeDeferredReleases().
|
static |
Definition at line 4119 of file qrhivulkan.cpp.
References QRhiVulkan::DeferredReleaseEntry::sampler.
Referenced by QRhiVulkan::executeDeferredReleases().
|
static |
Definition at line 4107 of file qrhivulkan.cpp.
References i, QRhi::MAX_MIP_LEVELS, QVK_FRAMES_IN_FLIGHT, QRhiVulkan::DeferredReleaseEntry::texture, toVmaAllocation(), and toVmaAllocator().
Referenced by QRhiVulkan::executeDeferredReleases().
|
static |
Definition at line 366 of file qrhivulkan.cpp.
|
inlinestatic |
Definition at line 1132 of file qrhivulkan.cpp.
References QRhiTexture::BGRA8, qWarning, QRhiTexture::RGB10A2, QRhiTexture::RGBA16F, QRhiTexture::RGBA32F, QRhiTexture::RGBA8, QRhiTexture::sRGB, and QRhiTexture::UnknownFormat.
|
inlinestatic |
Definition at line 2638 of file qrhivulkan.cpp.
References QRhiPassResourceTracker::UsageState::access, QRhiPassResourceTracker::UsageState::layout, and QRhiPassResourceTracker::UsageState::stage.
|
inlinestatic |
Definition at line 2647 of file qrhivulkan.cpp.
References QRhiPassResourceTracker::UsageState::access, QRhiPassResourceTracker::UsageState::layout, and QRhiPassResourceTracker::UsageState::stage.
|
inlinestatic |
Definition at line 397 of file qrhivulkan.cpp.
References QRhiDriverInfo::CpuDevice, QRhiDriverInfo::DiscreteDevice, QRhiDriverInfo::IntegratedDevice, QRhiDriverInfo::UnknownDevice, and QRhiDriverInfo::VirtualDevice.
Referenced by QRhiVulkan::create().
|
inlinestatic |
Definition at line 4425 of file qrhivulkan.cpp.
References QRhiPassResourceTracker::BufIndexRead, QRhiPassResourceTracker::BufStorageLoad, QRhiPassResourceTracker::BufStorageLoadStore, QRhiPassResourceTracker::BufStorageStore, QRhiPassResourceTracker::BufUniformRead, and QRhiPassResourceTracker::BufVertexInput.
Referenced by QRhiVulkan::recordTransitionPassResources(), QRhiVulkan::trackedRegisterBuffer(), and QRhiVulkan::trackedRegisterTexture().
|
inlinestatic |
Definition at line 4499 of file qrhivulkan.cpp.
References QRhiPassResourceTracker::TexColorOutput, QRhiPassResourceTracker::TexDepthOutput, QRhiPassResourceTracker::TexSample, QRhiPassResourceTracker::TexStorageLoad, QRhiPassResourceTracker::TexStorageLoadStore, and QRhiPassResourceTracker::TexStorageStore.
|
inlinestatic |
Definition at line 5778 of file qrhivulkan.cpp.
References QRhiSampler::ClampToEdge, QRhiSampler::Mirror, and QRhiSampler::Repeat.
Referenced by QVkSampler::create().
|
inlinestatic |
Definition at line 5812 of file qrhivulkan.cpp.
References QRhiVertexInputAttribute::Float, QRhiVertexInputAttribute::Float2, QRhiVertexInputAttribute::Float3, QRhiVertexInputAttribute::Float4, QRhiVertexInputAttribute::Half, QRhiVertexInputAttribute::Half2, QRhiVertexInputAttribute::Half3, QRhiVertexInputAttribute::Half4, QRhiVertexInputAttribute::SInt, QRhiVertexInputAttribute::SInt2, QRhiVertexInputAttribute::SInt3, QRhiVertexInputAttribute::SInt4, QRhiVertexInputAttribute::SShort, QRhiVertexInputAttribute::SShort2, QRhiVertexInputAttribute::SShort3, QRhiVertexInputAttribute::SShort4, QRhiVertexInputAttribute::UInt, QRhiVertexInputAttribute::UInt2, QRhiVertexInputAttribute::UInt3, QRhiVertexInputAttribute::UInt4, QRhiVertexInputAttribute::UNormByte, QRhiVertexInputAttribute::UNormByte2, QRhiVertexInputAttribute::UNormByte4, QRhiVertexInputAttribute::UShort, QRhiVertexInputAttribute::UShort2, QRhiVertexInputAttribute::UShort3, and QRhiVertexInputAttribute::UShort4.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 5936 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::ConstantAlpha, QRhiGraphicsPipeline::ConstantColor, QRhiGraphicsPipeline::DstAlpha, QRhiGraphicsPipeline::DstColor, QRhiGraphicsPipeline::One, QRhiGraphicsPipeline::OneMinusConstantAlpha, QRhiGraphicsPipeline::OneMinusConstantColor, QRhiGraphicsPipeline::OneMinusDstAlpha, QRhiGraphicsPipeline::OneMinusDstColor, QRhiGraphicsPipeline::OneMinusSrc1Alpha, QRhiGraphicsPipeline::OneMinusSrc1Color, QRhiGraphicsPipeline::OneMinusSrcAlpha, QRhiGraphicsPipeline::OneMinusSrcColor, QRhiGraphicsPipeline::Src1Alpha, QRhiGraphicsPipeline::Src1Color, QRhiGraphicsPipeline::SrcAlpha, QRhiGraphicsPipeline::SrcAlphaSaturate, QRhiGraphicsPipeline::SrcColor, and QRhiGraphicsPipeline::Zero.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 5982 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::Add, QRhiGraphicsPipeline::Max, QRhiGraphicsPipeline::Min, QRhiGraphicsPipeline::ReverseSubtract, and QRhiGraphicsPipeline::Subtract.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 5738 of file qrhivulkan.cpp.
References QRhiBuffer::IndexBuffer, QRhiBuffer::StorageBuffer, QRhiBuffer::UniformBuffer, and QRhiBuffer::VertexBuffer.
Referenced by QVkBuffer::create().
|
inlinestatic |
Definition at line 4471 of file qrhivulkan.cpp.
References QVkBuffer::UsageState::access, and QVkBuffer::UsageState::stage.
Referenced by QRhiVulkan::recordTransitionPassResources().
|
inlinestatic |
Definition at line 5922 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::A, QRhiGraphicsPipeline::B, QRhiGraphicsPipeline::G, and QRhiGraphicsPipeline::R.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 6000 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::Always, QRhiGraphicsPipeline::Equal, QRhiGraphicsPipeline::Greater, QRhiGraphicsPipeline::GreaterOrEqual, QRhiGraphicsPipeline::Less, QRhiGraphicsPipeline::LessOrEqual, QRhiGraphicsPipeline::Never, and QRhiGraphicsPipeline::NotEqual.
Referenced by QVkGraphicsPipeline::create(), and fillVkStencilOpState().
|
inlinestatic |
Definition at line 5896 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::Back, QRhiGraphicsPipeline::Front, and QRhiGraphicsPipeline::None.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 6068 of file qrhivulkan.cpp.
References QRhiShaderResourceBinding::BufferLoad, QRhiShaderResourceBinding::BufferLoadStore, QRhiShaderResourceBinding::BufferStore, QRhiShaderResourceBinding::ImageLoad, QRhiShaderResourceBinding::ImageLoadStore, QRhiShaderResourceBinding::ImageStore, QRhiShaderResourceBinding::SampledTexture, QRhiShaderResourceBinding::Sampler, QRhiShaderResourceBinding::Texture, and QRhiShaderResourceBinding::UniformBuffer.
Referenced by QVkShaderResourceBindings::create().
|
inlinestatic |
Definition at line 5752 of file qrhivulkan.cpp.
References QRhiSampler::Linear, and QRhiSampler::Nearest.
Referenced by QVkSampler::create().
|
inlinestatic |
Definition at line 5910 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::CCW, and QRhiGraphicsPipeline::CW.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 4479 of file qrhivulkan.cpp.
References QRhiPassResourceTracker::TexColorOutput, QRhiPassResourceTracker::TexDepthOutput, QRhiPassResourceTracker::TexSample, QRhiPassResourceTracker::TexStorageLoad, QRhiPassResourceTracker::TexStorageLoadStore, and QRhiPassResourceTracker::TexStorageStore.
Referenced by QRhiVulkan::recordTransitionPassResources(), and QRhiVulkan::trackedRegisterTexture().
|
inlinestatic |
Definition at line 5764 of file qrhivulkan.cpp.
References QRhiSampler::Linear, QRhiSampler::Nearest, and QRhiSampler::None.
Referenced by QVkSampler::create().
|
inlinestatic |
Definition at line 4447 of file qrhivulkan.cpp.
References QRhiPassResourceTracker::BufComputeStage, QRhiPassResourceTracker::BufFragmentStage, QRhiPassResourceTracker::BufGeometryStage, QRhiPassResourceTracker::BufTCStage, QRhiPassResourceTracker::BufTEStage, QRhiPassResourceTracker::BufVertexInputStage, and QRhiPassResourceTracker::BufVertexStage.
Referenced by QRhiVulkan::recordTransitionPassResources(), QRhiVulkan::trackedRegisterBuffer(), and QRhiVulkan::trackedRegisterTexture().
|
inlinestatic |
Definition at line 4521 of file qrhivulkan.cpp.
References QRhiPassResourceTracker::TexColorOutputStage, QRhiPassResourceTracker::TexComputeStage, QRhiPassResourceTracker::TexDepthOutputStage, QRhiPassResourceTracker::TexFragmentStage, QRhiPassResourceTracker::TexGeometryStage, QRhiPassResourceTracker::TexTCStage, QRhiPassResourceTracker::TexTEStage, and QRhiPassResourceTracker::TexVertexStage.
|
inlinestatic |
Definition at line 6048 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::Fill, and QRhiGraphicsPipeline::Line.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 5792 of file qrhivulkan.cpp.
References QRhiShaderStage::Compute, QRhiShaderStage::Fragment, QRhiShaderStage::Geometry, QRhiShaderStage::TessellationControl, QRhiShaderStage::TessellationEvaluation, and QRhiShaderStage::Vertex.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 6099 of file qrhivulkan.cpp.
References QRhiShaderResourceBinding::ComputeStage, QRhiShaderResourceBinding::FragmentStage, QRhiShaderResourceBinding::GeometryStage, QRhiShaderResourceBinding::TessellationControlStage, QRhiShaderResourceBinding::TessellationEvaluationStage, and QRhiShaderResourceBinding::VertexStage.
Referenced by QVkShaderResourceBindings::create().
|
inlinestatic |
Definition at line 6024 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::DecrementAndClamp, QRhiGraphicsPipeline::DecrementAndWrap, QRhiGraphicsPipeline::IncrementAndClamp, QRhiGraphicsPipeline::IncrementAndWrap, QRhiGraphicsPipeline::Invert, QRhiGraphicsPipeline::Keep, QRhiGraphicsPipeline::Replace, and QRhiGraphicsPipeline::StencilZero.
Referenced by fillVkStencilOpState().
|
inlinestatic |
Definition at line 6117 of file qrhivulkan.cpp.
References QRhiSampler::Always, QRhiSampler::Equal, QRhiSampler::Greater, QRhiSampler::GreaterOrEqual, QRhiSampler::Less, QRhiSampler::LessOrEqual, QRhiSampler::Never, and QRhiSampler::NotEqual.
Referenced by QVkSampler::create().
|
inlinestatic |
Definition at line 1035 of file qrhivulkan.cpp.
References QRhiTexture::ASTC_10x10, QRhiTexture::ASTC_10x5, QRhiTexture::ASTC_10x6, QRhiTexture::ASTC_10x8, QRhiTexture::ASTC_12x10, QRhiTexture::ASTC_12x12, QRhiTexture::ASTC_4x4, QRhiTexture::ASTC_5x4, QRhiTexture::ASTC_5x5, QRhiTexture::ASTC_6x5, QRhiTexture::ASTC_6x6, QRhiTexture::ASTC_8x5, QRhiTexture::ASTC_8x6, QRhiTexture::ASTC_8x8, QRhiTexture::BC1, QRhiTexture::BC2, QRhiTexture::BC3, QRhiTexture::BC4, QRhiTexture::BC5, QRhiTexture::BC6H, QRhiTexture::BC7, QRhiTexture::BGRA8, QRhiTexture::D16, QRhiTexture::D24, QRhiTexture::D24S8, QRhiTexture::D32F, QRhiTexture::ETC2_RGB8, QRhiTexture::ETC2_RGB8A1, QRhiTexture::ETC2_RGBA8, QRhiTexture::R16, QRhiTexture::R16F, QRhiTexture::R32F, QRhiTexture::R8, QRhiTexture::RED_OR_ALPHA8, QRhiTexture::RG16, QRhiTexture::RG8, QRhiTexture::RGB10A2, QRhiTexture::RGBA16F, QRhiTexture::RGBA32F, QRhiTexture::RGBA8, and QRhiTexture::sRGB.
Referenced by QRhiVulkan::isTextureFormatSupported(), and QVkTexture::prepareCreate().
|
inlinestatic |
Definition at line 4547 of file qrhivulkan.cpp.
References QVkTexture::UsageState::access, QVkTexture::UsageState::layout, and QVkTexture::UsageState::stage.
Referenced by QRhiVulkan::recordTransitionPassResources().
|
inlinestatic |
Definition at line 5874 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::Lines, QRhiGraphicsPipeline::LineStrip, QRhiGraphicsPipeline::Patches, QRhiGraphicsPipeline::Points, QRhiGraphicsPipeline::TriangleFan, QRhiGraphicsPipeline::Triangles, and QRhiGraphicsPipeline::TriangleStrip.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 304 of file qrhivulkan.cpp.
Referenced by QVkBuffer::beginFullDynamicBufferUpdateForCurrentFrame(), QVkBuffer::endFullDynamicBufferUpdateForCurrentFrame(), QRhiVulkan::enqueueResourceUpdates(), QRhiVulkan::executeBufferHostWritesForSlot(), QRhiVulkan::executeDeferredReleases(), QRhiVulkan::finishActiveReadbacks(), qrhivk_releaseBuffer(), and qrhivk_releaseTexture().
|
inlinestatic |
Definition at line 309 of file qrhivulkan.cpp.
Referenced by QVkBuffer::beginFullDynamicBufferUpdateForCurrentFrame(), QVkBuffer::create(), QVkTexture::create(), QRhiVulkan::destroy(), QVkBuffer::endFullDynamicBufferUpdateForCurrentFrame(), QRhiVulkan::enqueueResourceUpdates(), QRhiVulkan::executeBufferHostWritesForSlot(), QRhiVulkan::executeDeferredReleases(), QRhiVulkan::finishActiveReadbacks(), qrhivk_releaseBuffer(), qrhivk_releaseTexture(), and QRhiVulkan::statistics().
|
static |
Definition at line 299 of file qrhivulkan.cpp.
References device, and globalVulkanInstance.
|
static |
Definition at line 294 of file qrhivulkan.cpp.
References globalVulkanInstance.
|
static |
Definition at line 292 of file qrhivulkan.cpp.
Referenced by QRhiVulkan::create(), wrap_vkGetDeviceProcAddr(), and wrap_vkGetInstanceProcAddr().
struct { ... } qvk_sampleCounts[] |
Referenced by QRhiVulkan::effectiveSampleCountBits(), and QRhiVulkan::supportedSampleCounts().