Shader linking i guess
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include "vk_mem_alloc.h"
|
||||
#include "tier0/platform.h"
|
||||
#include "tier1/utlvector.h"
|
||||
#include "tier1/utlstring.h"
|
||||
#include "tier2/iappsystem.h"
|
||||
#include "materialsystem/imaterialsystem.h"
|
||||
#include "materialsystem/shaderinternals.h"
|
||||
@@ -268,7 +269,7 @@ public:
|
||||
virtual void AddOutputImage( int iImageIndex, EImageFormat eFormat ) override;
|
||||
virtual void SetDepthImage( EImageFormat eFormat ) override;
|
||||
virtual void SetMultisampling( EMultisampleType eFormat ) override;
|
||||
virtual void DisablePixelShader( bool bDisable) override;
|
||||
virtual void DisablePixelShader( bool bDisable ) override;
|
||||
virtual void Build() override;
|
||||
|
||||
VkPipeline m_hPipeline = NULL;
|
||||
@@ -285,7 +286,57 @@ private:
|
||||
EMultisampleType m_eMultiSampling;
|
||||
VkFormat m_eDepthFormat;
|
||||
bool m_bIsFragmentEnabled;
|
||||
};
|
||||
|
||||
class CVkComputeShader : public IComputeShader
|
||||
{
|
||||
public:
|
||||
virtual void Build() override;
|
||||
void BuildCompute();
|
||||
void BuildTrace();
|
||||
|
||||
VkDevice m_hDevice;
|
||||
CCompiledShader m_shader;
|
||||
|
||||
VkPipeline m_hPipeline = NULL;
|
||||
VkPipelineLayout m_hPipelineLayout;
|
||||
CUtlVector<VkDescriptorSetLayout> m_setLayouts;
|
||||
CUtlVector<VulkanDescriptor_t> m_bindings;
|
||||
private:
|
||||
struct ShaderBinding_t
|
||||
{
|
||||
CUtlString m_szName;
|
||||
CCompiledShader m_shader;
|
||||
};
|
||||
CUtlVector<ShaderBinding_t> m_callableShaders = {};
|
||||
};
|
||||
|
||||
class CVkRayTracingShader : public IRayTracingShader
|
||||
{
|
||||
public:
|
||||
virtual uint32_t GetMissShaderBinding( const char *szName ) override;
|
||||
virtual uint32_t GetClosestHitShaderBinding( const char *szName ) override;
|
||||
virtual uint32_t GetCallableShaderBinding( const char *szName ) override;
|
||||
virtual void AddShader( const char *szName, const char *szPath ) override;
|
||||
virtual void RemoveShader( const char *szName ) override;
|
||||
virtual void Build() override;
|
||||
void BuildCompute();
|
||||
void BuildTrace();
|
||||
|
||||
VkDevice m_hDevice;
|
||||
CCompiledShader m_shader;
|
||||
|
||||
VkPipeline m_hPipeline = NULL;
|
||||
VkPipelineLayout m_hPipelineLayout;
|
||||
CUtlVector<VkDescriptorSetLayout> m_setLayouts;
|
||||
CUtlVector<VulkanDescriptor_t> m_bindings;
|
||||
private:
|
||||
struct ShaderBinding_t
|
||||
{
|
||||
CUtlString m_szName;
|
||||
CCompiledShader m_shader;
|
||||
};
|
||||
CUtlVector<ShaderBinding_t> m_callableShaders = {};
|
||||
};
|
||||
|
||||
class CVkTextureArray: public ITextureArray
|
||||
|
||||
Reference in New Issue
Block a user