#include "materialsystem/imaterialsystem.h" #include "materialsystem/compiledshadermgr.h" #include "tier1/utlvector.h" #include "vulkan_state.h" BEGIN_DEFINE_PIPELINE_LIBRARY(VertexDescription) void AddLayout( int iIndex, int iStride ); void AddAttribute( int iBufferIndex, int iLocation, EVertexFormat eFormat, int iOffset ); void SetTopology( ETopologyMode eTopology ); VkPrimitiveTopology m_eTopology; CUtlVector attributes; CUtlVector layouts; END_DEFINE_PIPELINE_LIBRARY() BEGIN_DEFINE_PIPELINE_LIBRARY(VertexTransform) void SetShader( CCompiledShader *pShader ); CCompiledShader *m_pShader; VkDescriptorSetLayout m_setLayouts[SHADER_STAGE_COUNT]; VkPipelineLayout m_layout; END_DEFINE_PIPELINE_LIBRARY() BEGIN_DEFINE_PIPELINE_LIBRARY(PixelShader) void SetShader( CCompiledShader *pShader ); void SetDepthRequired( bool b ); CCompiledShader *m_pShader; VkDescriptorSetLayout m_setLayouts[SHADER_STAGE_COUNT]; VkPipelineLayout m_layout; bool m_bIsDepthRequired = false; END_DEFINE_PIPELINE_LIBRARY() BEGIN_DEFINE_PIPELINE_LIBRARY(PixelOutput) void AddAttachment( EImageFormat eFormat ); void SetDepthRequired( bool b ); CUtlVector m_eFormats = {}; bool m_bIsDepthRequired = false; END_DEFINE_PIPELINE_LIBRARY()