Go to the documentation of this file.
75 std::array<RenderPassAttachmentDesc, MAX_RENDER_TARGETS + 1>& Attachments,
76 std::array<AttachmentReference, MAX_RENDER_TARGETS + 1>& AttachmentReferences,
93 std::vector<std::vector<uint32_t>>
SPIRVs;
99 #ifdef DILIGENT_DEVELOPMENT
102 using ShaderResourceCacheArrayType = std::array<ShaderResourceCacheVk*, MAX_RESOURCE_SIGNATURES>;
103 void DvpVerifySRBResources(
const ShaderResourceCacheArrayType& ResourceCaches)
const;
105 void DvpValidateResourceLimits()
const;
109 template <
typename PSOCreateInfoType>
110 TShaderStages InitInternalObjects(
const PSOCreateInfoType& CreateInfo,
111 std::vector<VkPipelineShaderStageCreateInfo>& vkShaderStages,
112 std::vector<VulkanUtilities::ShaderModuleWrapper>& ShaderModules);
126 #ifdef DILIGENT_DEVELOPMENT
128 std::vector<std::shared_ptr<const SPIRVShaderResources>> m_ShaderResources;
130 std::vector<ResourceAttribution> m_ResourceAttibutions;
friend SHADER_TYPE GetShaderStageType(const ShaderStageInfo &Stage)
Definition: PipelineStateVkImpl.hpp:95
ShaderStageInfo()
Definition: PipelineStateVkImpl.hpp:83
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:44
Render device implementation in Vulkan backend.
Definition: RenderDeviceVkImpl.hpp:58
Graphics pipeline state creation attributes.
Definition: PipelineState.h:397
Ray tracing pipeline state description.
Definition: PipelineState.h:443
SHADER_TYPE
Describes the shader type.
Definition: GraphicsTypes.h:65
Shader object object implementation in Vulkan backend.
Definition: ShaderVkImpl.hpp:41
PipelineStateVkImpl(IReferenceCounters *pRefCounters, RenderDeviceVkImpl *pDeviceVk, const GraphicsPipelineStateCreateInfo &CreateInfo)
Definition: PipelineStateVkImpl.cpp:994
Pipeline state object implementation in Vulkan backend.
Definition: PipelineStateVkImpl.hpp:51
Render pass description.
Definition: RenderPass.h:341
const PipelineLayoutVk & GetPipelineLayout() const
Definition: PipelineStateVkImpl.hpp:69
RefCntAutoPtr< IRenderPass > const & GetRenderPassPtr() const
Definition: PipelineStateBase.hpp:276
void Append(const ShaderVkImpl *pShader)
Definition: PipelineStateVkImpl.cpp:628
Definition: PipelineStateVkImpl.hpp:81
static RenderPassDesc GetImplicitRenderPassDesc(Uint32 NumRenderTargets, const TEXTURE_FORMAT RTVFormats[], TEXTURE_FORMAT DSVFormat, Uint8 SampleCount, std::array< RenderPassAttachmentDesc, MAX_RENDER_TARGETS+1 > &Attachments, std::array< AttachmentReference, MAX_RENDER_TARGETS+1 > &AttachmentReferences, SubpassDesc &SubpassDesc)
Definition: PipelineStateVkImpl.cpp:657
size_t Count() const
Definition: PipelineStateVkImpl.cpp:650
#define IMPLEMENT_QUERY_INTERFACE_IN_PLACE(InterfaceID, ParentClassName)
Definition: ObjectBase.hpp:59
Pipeline state creation attributes.
Definition: PipelineState.h:370
Render pass subpass decription.
Definition: RenderPass.h:186
Template class that implements reference counting.
Definition: RefCntAutoPtr.hpp:73
#define DILIGENT_CALL_TYPE
Definition: CommonDefinitions.h:45
Compute pipeline state description.
Definition: PipelineState.h:427
Implementation of the Diligent::PipelineLayoutVk class.
Definition: PipelineLayoutVk.hpp:44
~PipelineStateVkImpl()
Definition: PipelineStateVkImpl.cpp:1062
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
@ SHADER_TYPE_UNKNOWN
Unknown shader type.
Definition: GraphicsTypes.h:67
std::vector< ShaderStageInfo > TShaderStages
Definition: PipelineStateVkImpl.hpp:97
virtual IRenderPassVk * GetRenderPass() const override final
Implementation of IPipelineStateVk::GetRenderPass().
Definition: PipelineStateVkImpl.hpp:64
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:328
virtual VkPipeline GetVkPipeline() const override final
Implementation of IPipelineStateVk::GetVkPipeline().
Definition: PipelineStateVkImpl.hpp:67
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:53
SHADER_TYPE Type
Definition: PipelineStateVkImpl.hpp:90
Exposes Vulkan-specific functionality of a RenderPass object.
Definition: RenderPassVk.h:49
Template class implementing base functionality of the pipeline state object.
Definition: PipelineStateBase.hpp:99
DEFINE_VULKAN_OBJECT_WRAPPER(Pipeline) PipelineWrapper
Definition: VulkanLogicalDevice.hpp:76
std::vector< const ShaderVkImpl * > Shaders
Definition: PipelineStateVkImpl.hpp:92
std::vector< std::vector< uint32_t > > SPIRVs
Definition: PipelineStateVkImpl.hpp:93
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37