lots of updates
This commit is contained in:
@@ -42,6 +42,7 @@ enum EVulkanCommandParameterType
|
||||
|
||||
enum EDependencyMode
|
||||
{
|
||||
DEPENDENCY_MODE_JUST_CREATED,
|
||||
|
||||
DEPENDENCY_MODE_SHADER_IMAGE_READ,
|
||||
DEPENDENCY_MODE_SHADER_BUFFER_READ,
|
||||
@@ -52,6 +53,7 @@ enum EDependencyMode
|
||||
DEPENDENCY_MODE_DRAWCALL_VERTEX_BUFFER,
|
||||
DEPENDENCY_MODE_DRAWCALL_INDEX_BUFFER,
|
||||
DEPENDENCY_MODE_DRAWCALL_OUTPUT_IMAGE,
|
||||
DEPENDENCY_MODE_DRAWCALL_OUTPUT_DEPTH_IMAGE,
|
||||
DEPENDENCY_MODE_DRAWCALL_INPUT_IMAGE,
|
||||
DEPENDENCY_MODE_DRAWCALL_MIXED_IMAGE,
|
||||
|
||||
@@ -96,6 +98,7 @@ abstract_class CVkCommand
|
||||
{
|
||||
public:
|
||||
virtual void Execute( VkCommandBuffer hCommandBuffer, int iCurrentFrame ) = 0;
|
||||
virtual ~CVkCommand() = default;
|
||||
//virtual const char *GetName();
|
||||
|
||||
CUtlVector<VulkanCommandDepenency_t> m_dependencies = {};
|
||||
@@ -127,6 +130,7 @@ public:
|
||||
virtual IVkCommandBuffer *CreateCommandBuffer() = 0;
|
||||
virtual CVkCommand *CreateCommand( const char *szName ) = 0;
|
||||
virtual CUtlVector<VkCommandBuffer> &GetVulkanCommands() = 0;
|
||||
virtual void FreeCommandBufferWithCommands(IVkCommandBuffer* pCommandBuffer) = 0;
|
||||
virtual void RenderingFinished() = 0;
|
||||
};
|
||||
#define VULKAN_COMMAND_BUFFER_MANAGER_INTERFACE_NAME "VulkanCommandBufferManager"
|
||||
@@ -194,7 +198,7 @@ public:
|
||||
VkImageLayout m_ePreferredLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
|
||||
|
||||
VkImageLayout m_eImageLayout = VK_IMAGE_LAYOUT_UNDEFINED;
|
||||
EDependencyMode m_eLastUsage;
|
||||
EDependencyMode m_eLastUsage = DEPENDENCY_MODE_JUST_CREATED;
|
||||
};
|
||||
|
||||
class CVkBuffer: public IBuffer
|
||||
@@ -261,6 +265,7 @@ public:
|
||||
virtual void SetTopology( ETopologyMode eTopology ) override;
|
||||
virtual void AddOutputImage( int iImageIndex, EImageFormat eFormat ) override;
|
||||
virtual void SetDepthImage( EImageFormat eFormat ) override;
|
||||
virtual void DisablePixelShader( bool bDisable) override;
|
||||
virtual void Build() override;
|
||||
|
||||
VkPipeline m_hPipeline = NULL;
|
||||
@@ -274,6 +279,8 @@ private:
|
||||
CUtlVector<VkVertexInputBindingDescription> m_layouts;
|
||||
CUtlVector<VkVertexInputAttributeDescription> m_attributes;
|
||||
CUtlVector<VkFormat> m_eFormats;
|
||||
VkFormat m_eDepthFormat;
|
||||
bool m_bIsFragmentEnabled;
|
||||
|
||||
};
|
||||
|
||||
@@ -347,6 +354,7 @@ struct VulkanRenderOutput_t {
|
||||
class CVkRenderCommandList: public IRenderCommandList
|
||||
{
|
||||
public:
|
||||
~CVkRenderCommandList();
|
||||
virtual void ResetRendering() override;
|
||||
|
||||
virtual void SetRenderTarget( uint32_t uIndex, IImage *pImage ) override;
|
||||
@@ -381,10 +389,11 @@ private:
|
||||
VulkanRenderOutput_t *FindOrCreateRenderOutput( uint32_t uIndex );
|
||||
IVkCommandBuffer *FindOrCreateMaterialCommandBuffer( IMaterial *pMaterial, bool *pbWasCreated = NULL );
|
||||
|
||||
VulkanRenderOutput_t m_depth;
|
||||
bool m_bDepthEnabled = false;
|
||||
VulkanRenderOutput_t m_depth = {};
|
||||
|
||||
CUtlVector<VulkanRenderOutput_t> m_pOutput = {};
|
||||
CUtlSelfReferencingVector<VulkanMaterialCommandBuffer_t> m_materials = {};
|
||||
CUtlVector<VulkanMaterialCommandBuffer_t> m_materials = {};
|
||||
IVkCommandBuffer *m_pPostRaster;
|
||||
|
||||
IVkCommandBuffer *m_pCurrentMaterialBuffer = NULL;
|
||||
|
||||
Reference in New Issue
Block a user