Browse Source

Fix Vulkan validation errors

Panagiotis Christopoulos Charitos 5 years ago
parent
commit
5ac0c87fc1
2 changed files with 14 additions and 1 deletions
  1. 13 1
      src/anki/renderer/Ssgi.cpp
  2. 1 0
      src/anki/renderer/Ssgi.h

+ 13 - 1
src/anki/renderer/Ssgi.cpp

@@ -70,7 +70,15 @@ void Ssgi::populateRenderGraph(RenderingContext& ctx)
 	m_runCtx.m_ctx = &ctx;
 
 	// Create RTs
-	m_runCtx.m_rt = rgraph.importRenderTarget(m_main.m_rt, TextureUsageBit::SAMPLED_FRAGMENT);
+	if(ANKI_LIKELY(m_main.m_rtImportedOnce))
+	{
+		m_runCtx.m_rt = rgraph.importRenderTarget(m_main.m_rt);
+	}
+	else
+	{
+		m_runCtx.m_rt = rgraph.importRenderTarget(m_main.m_rt, TextureUsageBit::SAMPLED_FRAGMENT);
+		m_main.m_rtImportedOnce = true;
+	}
 
 	// Create pass
 	ComputeRenderPassDescription& rpass = rgraph.newComputeRenderPass("SSGI");
@@ -82,6 +90,10 @@ void Ssgi::populateRenderGraph(RenderingContext& ctx)
 	TextureSubresourceInfo hizSubresource;
 	hizSubresource.m_firstMipmap = m_main.m_depthLod;
 	rpass.newDependency({m_r->getDepthDownscale().getHiZRt(), TextureUsageBit::SAMPLED_COMPUTE, hizSubresource});
+
+	rpass.newDependency({m_r->getGBuffer().getColorRt(2), TextureUsageBit::SAMPLED_COMPUTE});
+
+	rpass.newDependency({m_r->getDownscaleBlur().getRt(), TextureUsageBit::SAMPLED_COMPUTE});
 }
 
 void Ssgi::run(RenderPassWorkContext& rgraphCtx)

+ 1 - 0
src/anki/renderer/Ssgi.h

@@ -53,6 +53,7 @@ private:
 		TextureResourcePtr m_noiseTex;
 		U32 m_maxSteps = 32;
 		U32 m_depthLod = 0;
+		Bool m_rtImportedOnce = false;
 	} m_main;
 
 	class