Forráskód Böngészése

RenderGraph: Some changes around callbacks

Panagiotis Christopoulos Charitos 8 éve
szülő
commit
4c96c64187
2 módosított fájl, 7 hozzáadás és 6 törlés
  1. 5 4
      src/anki/gr/RenderGraph.cpp
  2. 2 2
      src/anki/gr/RenderGraph.h

+ 5 - 4
src/anki/gr/RenderGraph.cpp

@@ -866,20 +866,21 @@ BufferPtr RenderGraph::getBuffer(RenderPassBufferHandle handle) const
 	return m_ctx->m_buffers[handle].m_buffer;
 }
 
-void RenderGraph::runSecondLevel()
+void RenderGraph::runSecondLevel(U32 threadIdx) const
 {
 	ANKI_ASSERT(m_ctx);
 	for(Pass& p : m_ctx->m_passes)
 	{
 		const U size = p.m_secondLevelCmdbs.getSize();
-		for(U i = 0; i < size; ++i)
+		if(threadIdx < size)
 		{
-			p.m_callback(p.m_userData, p.m_secondLevelCmdbs[i], i, size, *this);
+			// TODO Inform about texture usage
+			p.m_callback(p.m_userData, p.m_secondLevelCmdbs[threadIdx], threadIdx, size, *this);
 		}
 	}
 }
 
-void RenderGraph::run()
+void RenderGraph::run() const
 {
 	ANKI_ASSERT(m_ctx);
 

+ 2 - 2
src/anki/gr/RenderGraph.h

@@ -458,14 +458,14 @@ public:
 	/// @{
 
 	/// Will call a number of RenderPassWorkCallback that populate 2nd level command buffers.
-	void runSecondLevel();
+	void runSecondLevel(U32 threadIdx) const;
 	/// @}
 
 	/// @name 3rd step methods
 	/// @{
 
 	/// Will call a number of RenderPassWorkCallback that populate 1st level command buffers.
-	void run();
+	void run() const;
 	/// @}
 
 	/// @name 2nd and 3rd step methods