compute shaders

This commit is contained in:
2026-06-13 01:51:28 +03:00
parent 3b128315e7
commit b8aa36ccc0
28 changed files with 498 additions and 170 deletions

View File

@@ -208,6 +208,7 @@ public:
VkImageLayout m_eImageLayout = VK_IMAGE_LAYOUT_UNDEFINED;
EDependencyMode m_eLastUsage = DEPENDENCY_MODE_JUST_CREATED;
VkDescriptorType m_eDescriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
};
class CVkBuffer: public IBuffer
@@ -310,8 +311,6 @@ class CVkComputeShader : public IComputeShader
{
public:
virtual void Build() override;
void BuildCompute();
void BuildTrace();
VkDevice m_hDevice;
CCompiledShader m_shader;
@@ -383,7 +382,7 @@ public:
class CVkMaterial: public IMaterial
{
public:
CVkMaterial( IShader *pShader );
CVkMaterial( IBaseShader *pShader );
virtual ~CVkMaterial() override;
void Frame();
@@ -398,7 +397,12 @@ public:
virtual void PSSetTexture( uint32_t uRegister, IImage *pImage ) override;
virtual void PSSetSampler( uint32_t uRegister, ISampler *pImage ) override;
CVkShader *m_pVkShader;
virtual void CSSetConstantsBuffer( uint32_t uRegister, uint32_t uSet, IBuffer *pBuffer ) override;
virtual void CSSetTexture( uint32_t uRegister, uint32_t uSet, IImage *pImage ) override;
virtual void CSSetSampler( uint32_t uRegister, uint32_t uSet, ISampler *pSampler ) override;
virtual void CSSetTextureArray( uint32_t uSet, ITextureArray *pArray ) override;
IBaseShader *m_pShader;
CUtlVector<VkDescriptorSet> m_hSets;
private:
VkDescriptorPool m_hPool;
@@ -490,6 +494,7 @@ public:
virtual void EndRecording() override;
virtual void Barrier( IRenderingObject *pObject, bool bIsRead, bool bIsWrite ) override;
virtual void DispatchCompute( uint32_t uX, uint32_t uY, uint32_t uZ ) override;
virtual void CopyImageToImage( IImage *pSrc, IImage *pDst ) override;
virtual void BlitImageToImage( IImage *pSrc, ImageSector_t src, IImage *pDst, ImageSector_t dst ) override;
@@ -497,6 +502,7 @@ public:
virtual void ClearDepth( IImage *pImage, float fVal ) override;
void Submit();
void FlushBarriers( CVkCommand *pCmd );
IVkCommandBufferManager *m_pCommandBufferManager;
private: