compute shaders
This commit is contained in:
@@ -202,6 +202,11 @@ void CVkImage::CreateImage( uint32_t nWidth, uint32_t nHeight, EImageFormat eFor
|
||||
|
||||
stAlloc.usage = VMA_MEMORY_USAGE_AUTO;
|
||||
|
||||
if (eUsage & VK_IMAGE_USAGE_SAMPLED_BIT)
|
||||
m_eDescriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
|
||||
if (eUsage & VK_IMAGE_USAGE_STORAGE_BIT)
|
||||
m_eDescriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
|
||||
|
||||
vmaCreateImage(s_vkAllocator, &stCreateInfo, &stAlloc, &m_image, &m_allocation, NULL);
|
||||
}
|
||||
|
||||
@@ -475,7 +480,7 @@ public:
|
||||
virtual IComputeShader *CreateComputeShader( const char *szName ) override;
|
||||
virtual void DestroyShader( IBaseShader *pShader ) override;
|
||||
|
||||
virtual IMaterial *CreateMaterial( IShader *pShader ) override;
|
||||
virtual IMaterial *CreateMaterial( IBaseShader *pShader ) override;
|
||||
virtual void DestroyMaterial( IMaterial *pMaterial ) override;
|
||||
|
||||
virtual IRenderCommandList *CreateCommandList() override;
|
||||
@@ -609,6 +614,7 @@ void CVkRenderContext::DestroyBuffer( IBuffer *pBuffer )
|
||||
|
||||
void CVkRenderContext::DestroyImage( IImage *pImage )
|
||||
{
|
||||
m_scheduledRemovalImages.AppendTail((CVkImage*)pImage);
|
||||
|
||||
}
|
||||
|
||||
@@ -617,7 +623,6 @@ IShader *CVkRenderContext::CreateShader( const char *szName )
|
||||
|
||||
|
||||
CVkShader *pShader = new CVkShader();
|
||||
VkGraphicsPipelineCreateInfo stPipelineCreateInfo = {};
|
||||
ICompiledShaderManager *pCompiledShaderManager = (ICompiledShaderManager*)CreateInterface(COMPILED_SHADER_MANAGER_INTERFACE_VERSION, NULL);
|
||||
pCompiledShaderManager->ReadFromFile(&pShader->m_shader, szName);
|
||||
pShader->m_hDevice = s_vkDevice;
|
||||
@@ -627,7 +632,6 @@ IShader *CVkRenderContext::CreateShader( const char *szName )
|
||||
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;
|
||||
@@ -636,6 +640,11 @@ IRayTracingShader *CVkRenderContext::CreateRayShader( const char *szName )
|
||||
|
||||
IComputeShader *CVkRenderContext::CreateComputeShader( const char *szName )
|
||||
{
|
||||
CVkComputeShader *pShader = new CVkComputeShader;
|
||||
ICompiledShaderManager *pCompiledShaderManager = (ICompiledShaderManager*)CreateInterface(COMPILED_SHADER_MANAGER_INTERFACE_VERSION, NULL);
|
||||
pCompiledShaderManager->ReadFromFile(&pShader->m_shader, szName);
|
||||
pShader->m_hDevice = s_vkDevice;
|
||||
return pShader;
|
||||
}
|
||||
|
||||
void CVkRenderContext::DestroyShader( IBaseShader *pShader )
|
||||
@@ -643,7 +652,7 @@ void CVkRenderContext::DestroyShader( IBaseShader *pShader )
|
||||
delete pShader;
|
||||
}
|
||||
|
||||
IMaterial *CVkRenderContext::CreateMaterial( IShader *pShader )
|
||||
IMaterial *CVkRenderContext::CreateMaterial( IBaseShader *pShader )
|
||||
{
|
||||
CVkMaterial *pMaterial = new CVkMaterial(pShader);
|
||||
m_pMaterials.AppendTail(pMaterial);
|
||||
|
||||
Reference in New Issue
Block a user