Remove multithreading RenderState as that seemed to be a poor approach

This commit is contained in:
dpjudas 2023-10-09 03:20:19 +02:00
commit 411b281e7c
19 changed files with 64 additions and 237 deletions

View file

@ -61,14 +61,12 @@ void VkPostprocess::SetActiveRenderTarget()
.AddImage(&buffers->PipelineDepthStencil, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, false)
.Execute(fb->GetCommands()->GetDrawCommands());
for (int i = 0; i < fb->MaxThreads; i++)
fb->GetRenderState(i)->SetRenderTarget(&buffers->PipelineImage[mCurrentPipelineImage], buffers->PipelineDepthStencil.View.get(), buffers->GetWidth(), buffers->GetHeight(), VK_FORMAT_R16G16B16A16_SFLOAT, VK_SAMPLE_COUNT_1_BIT);
fb->GetRenderState()->SetRenderTarget(&buffers->PipelineImage[mCurrentPipelineImage], buffers->PipelineDepthStencil.View.get(), buffers->GetWidth(), buffers->GetHeight(), VK_FORMAT_R16G16B16A16_SFLOAT, VK_SAMPLE_COUNT_1_BIT);
}
void VkPostprocess::PostProcessScene(int fixedcm, float flash, const std::function<void()> &afterBloomDrawEndScene2D)
{
for (int i = 0; i < fb->MaxThreads; i++)
fb->GetRenderState(i)->EndRenderPass();
fb->GetRenderState()->EndRenderPass();
fb->GetCommands()->FlushCommands(false);
int sceneWidth = fb->GetBuffers()->GetSceneWidth();
@ -84,8 +82,7 @@ void VkPostprocess::PostProcessScene(int fixedcm, float flash, const std::functi
void VkPostprocess::BlitSceneToPostprocess()
{
for (int i = 0; i < fb->MaxThreads; i++)
fb->GetRenderState(i)->EndRenderPass();
fb->GetRenderState()->EndRenderPass();
auto buffers = fb->GetBuffers();
auto cmdbuffer = fb->GetCommands()->GetDrawCommands();
@ -154,8 +151,7 @@ void VkPostprocess::ImageTransitionScene(bool undefinedSrcLayout)
void VkPostprocess::BlitCurrentToImage(VkTextureImage *dstimage, VkImageLayout finallayout)
{
for (int i = 0; i < fb->MaxThreads; i++)
fb->GetRenderState(i)->EndRenderPass();
fb->GetRenderState()->EndRenderPass();
auto srcimage = &fb->GetBuffers()->PipelineImage[mCurrentPipelineImage];
auto cmdbuffer = fb->GetCommands()->GetDrawCommands();