![]() |
Qt 6.x
The Qt SDK
|
#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 | |
struct { | ||
VkSampleCountFlagBits mask | ||
int count | ||
} | 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 2984 of file qrhivulkan.cpp.
Referenced by QRhiVulkan::recordTransitionPassResources(), QRhiVulkan::trackedBufferBarrier(), QRhiVulkan::trackedImageBarrier(), QRhiVulkan::trackedRegisterBuffer(), and QRhiVulkan::trackedRegisterTexture().
\variable QRhiVulkanRenderPassNativeHandles::renderPass
The VkRenderPass object.
Definition at line 287 of file qrhivulkan.cpp.
|
inlinestaticconstexpr |
Definition at line 1092 of file qrhivulkan.cpp.
References isDepthTextureFormat().
Referenced by QVkTexture::finishCreate(), QVkTexture::imageViewForLevel(), QRhiVulkan::recordTransitionPassResources(), and QRhiVulkan::trackedImageBarrier().
|
inlinestatic |
Definition at line 6493 of file qrhivulkan.cpp.
Referenced by QVkRenderPassDescriptor::isCompatible().
|
static |
Definition at line 1249 of file qrhivulkan.cpp.
References QVkRenderPassDescriptor::attDescs, QVkRenderPassDescriptor::colorRefs, QVarLengthArray< T, Prealloc >::constData(), QVkRenderPassDescriptor::dsRef, QVkRenderPassDescriptor::hasDepthStencil, QVarLengthArray< T, Prealloc >::isEmpty(), QVkRenderPassDescriptor::resolveRefs, QVLABaseBase::size(), and QVkRenderPassDescriptor::subpassDeps.
Referenced by QRhiVulkan::createDefaultRenderPass(), QRhiVulkan::createOffscreenRenderPass(), and QVkRenderPassDescriptor::newCompatibleRenderPassDescriptor().
|
inlinestatic |
Definition at line 5715 of file qrhivulkan.cpp.
References toVkCompareOp(), and toVkStencilOp().
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 7509 of file qrhivulkan.cpp.
References QRhiSwapChain::HDR10, and QRhiSwapChain::HDRExtendedSrgbLinear.
Referenced by QVkSwapChain::ensureSurface(), and QVkSwapChain::isFormatSupported().
|
inlinestaticconstexpr |
Definition at line 1078 of file qrhivulkan.cpp.
References QRhiTexture::D16, QRhiTexture::D24, QRhiTexture::D24S8, and QRhiTexture::D32F.
Referenced by aspectMaskForTextureFormat().
|
inlinestatic |
Definition at line 7576 of file qrhivulkan.cpp.
Referenced by QVkSwapChain::ensureSurface().
|
inlinestatic |
Definition at line 5305 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 2641 of file qrhivulkan.cpp.
References QSet< T >::end(), QSet< T >::find(), and it.
Referenced by QRhiVulkan::dispatch().
|
static |
Definition at line 3764 of file qrhivulkan.cpp.
References e, i, QVK_FRAMES_IN_FLIGHT, toVmaAllocation(), and toVmaAllocator().
Referenced by QRhiVulkan::executeDeferredReleases().
|
static |
Definition at line 3772 of file qrhivulkan.cpp.
References e.
Referenced by QRhiVulkan::executeDeferredReleases().
|
static |
Definition at line 3791 of file qrhivulkan.cpp.
References e.
Referenced by QRhiVulkan::executeDeferredReleases().
|
static |
Definition at line 3779 of file qrhivulkan.cpp.
References e, i, QRhi::MAX_MIP_LEVELS, QVK_FRAMES_IN_FLIGHT, toVmaAllocation(), and toVmaAllocator().
Referenced by QRhiVulkan::executeDeferredReleases().
|
static |
Definition at line 364 of file qrhivulkan.cpp.
|
inlinestatic |
Definition at line 1050 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 2332 of file qrhivulkan.cpp.
References QRhiPassResourceTracker::UsageState::access, QVkBuffer::UsageState::access, QRhiPassResourceTracker::UsageState::layout, QRhiPassResourceTracker::UsageState::stage, and QVkBuffer::UsageState::stage.
|
inlinestatic |
|
inlinestatic |
Definition at line 395 of file qrhivulkan.cpp.
References QRhiDriverInfo::CpuDevice, QRhiDriverInfo::DiscreteDevice, QRhiDriverInfo::IntegratedDevice, QRhiDriverInfo::UnknownDevice, and QRhiDriverInfo::VirtualDevice.
Referenced by QRhiVulkan::create().
|
inlinestatic |
Definition at line 4101 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 4175 of file qrhivulkan.cpp.
References QRhiPassResourceTracker::TexColorOutput, QRhiPassResourceTracker::TexDepthOutput, QRhiPassResourceTracker::TexSample, QRhiPassResourceTracker::TexStorageLoad, QRhiPassResourceTracker::TexStorageLoadStore, and QRhiPassResourceTracker::TexStorageStore.
|
inlinestatic |
Definition at line 5449 of file qrhivulkan.cpp.
References QRhiSampler::ClampToEdge, QRhiSampler::Mirror, and QRhiSampler::Repeat.
Referenced by QVkSampler::create().
|
inlinestatic |
Definition at line 5483 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::UInt, QRhiVertexInputAttribute::UInt2, QRhiVertexInputAttribute::UInt3, QRhiVertexInputAttribute::UInt4, QRhiVertexInputAttribute::UNormByte, QRhiVertexInputAttribute::UNormByte2, and QRhiVertexInputAttribute::UNormByte4.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 5591 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 5637 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::Add, QRhiGraphicsPipeline::Max, QRhiGraphicsPipeline::Min, QRhiGraphicsPipeline::ReverseSubtract, and QRhiGraphicsPipeline::Subtract.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 5409 of file qrhivulkan.cpp.
References QRhiBuffer::IndexBuffer, QRhiBuffer::StorageBuffer, QRhiBuffer::UniformBuffer, and QRhiBuffer::VertexBuffer.
Referenced by QVkBuffer::create().
|
inlinestatic |
Definition at line 4147 of file qrhivulkan.cpp.
References QVkBuffer::UsageState::access, and QVkBuffer::UsageState::stage.
Referenced by QRhiVulkan::recordTransitionPassResources().
|
inlinestatic |
Definition at line 5577 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::A, QRhiGraphicsPipeline::B, QRhiGraphicsPipeline::G, and QRhiGraphicsPipeline::R.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 5655 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 5551 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::Back, QRhiGraphicsPipeline::Front, and QRhiGraphicsPipeline::None.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 5723 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 5423 of file qrhivulkan.cpp.
References QRhiSampler::Linear, and QRhiSampler::Nearest.
Referenced by QVkSampler::create().
|
inlinestatic |
Definition at line 5565 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::CCW, and QRhiGraphicsPipeline::CW.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 4155 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 5435 of file qrhivulkan.cpp.
References QRhiSampler::Linear, QRhiSampler::Nearest, and QRhiSampler::None.
Referenced by QVkSampler::create().
|
inlinestatic |
Definition at line 4123 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 4197 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 5703 of file qrhivulkan.cpp.
References QRhiGraphicsPipeline::Fill, and QRhiGraphicsPipeline::Line.
Referenced by QVkGraphicsPipeline::create().
|
inlinestatic |
Definition at line 5463 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 5754 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 5679 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 5772 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 953 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 4223 of file qrhivulkan.cpp.
References QVkTexture::UsageState::access, QVkTexture::UsageState::layout, and QVkTexture::UsageState::stage.
Referenced by QRhiVulkan::recordTransitionPassResources().
|
inlinestatic |
Definition at line 5529 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.
int count |
Definition at line 3908 of file qrhivulkan.cpp.
|
static |
Definition at line 292 of file qrhivulkan.cpp.
Referenced by QRhiVulkan::create(), wrap_vkGetDeviceProcAddr(), and wrap_vkGetInstanceProcAddr().
VkSampleCountFlagBits mask |
Definition at line 3907 of file qrhivulkan.cpp.
struct { ... } qvk_sampleCounts[] |
Referenced by QRhiVulkan::effectiveSampleCount(), and QRhiVulkan::supportedSampleCounts().