Shader linking i guess

This commit is contained in:
2026-04-12 14:52:33 +03:00
parent 79ceac1005
commit 457b455042
38 changed files with 12534 additions and 114 deletions

View File

@@ -23,7 +23,7 @@ static const char *s_vkDeviceExtensions[] = {
#undef REQUIRED_EXTENSION
#undef OPTIONAL_EXTENSION
SupportedVulkanExtensions_t g_vkAvailableExtensions;
SupportedVulkanExtensions_t g_vkAvailableExtensions = {};
uint32_t g_iDrawFamily;
@@ -458,7 +458,9 @@ public:
IBuffer *CreateBufferAligned( uint32_t nSize, uint32_t nAlignment, VkBufferUsageFlags2 eUsage );
virtual IShader *CreateShader( const char *szName ) override;
virtual void DestroyShader( IShader *pShader ) override;
virtual IRayTracingShader *CreateRayShader( const char *szName ) override;
virtual IComputeShader *CreateComputeShader( const char *szName ) override;
virtual void DestroyShader( IBaseShader *pShader ) override;
virtual IMaterial *CreateMaterial( IShader *pShader ) override;
virtual void DestroyMaterial( IMaterial *pMaterial ) override;
@@ -593,7 +595,21 @@ IShader *CVkRenderContext::CreateShader( const char *szName )
return pShader;
}
void CVkRenderContext::DestroyShader( IShader *pShader )
IRayTracingShader *CVkRenderContext::CreateRayShader( const char *szName )
{
CVkRayTracingShader *pShader = new CVkRayTracingShader();
VkGraphicsPipelineCreateInfo stPipelineCreateInfo = {};
ICompiledShaderManager *pCompiledShaderManager = (ICompiledShaderManager*)CreateInterface(COMPILED_SHADER_MANAGER_INTERFACE_VERSION, NULL);
pCompiledShaderManager->ReadFromFile(&pShader->m_shader, szName);
pShader->m_hDevice = s_vkDevice;
return pShader;
}
IComputeShader *CVkRenderContext::CreateComputeShader( const char *szName )
{
}
void CVkRenderContext::DestroyShader( IBaseShader *pShader )
{
delete pShader;
}