Panagiotis Christopoulos Charitos %!s(int64=13) %!d(string=hai) anos
pai
achega
86b48123aa
Modificáronse 3 ficheiros con 6 adicións e 9 borrados
  1. 1 1
      src/core/ThreadPool.cpp
  2. 3 1
      src/scene/SceneGraph.cpp
  3. 2 7
      testapp/Main.cpp

+ 1 - 1
src/core/ThreadPool.cpp

@@ -18,7 +18,7 @@ ThreadWorker::ThreadWorker(U32 id_, Barrier* barrier_, ThreadPool* threadPool_)
 void ThreadWorker::assignNewJob(ThreadJob* job_)
 {
 	mutex.lock();
-	ANKI_ASSERT(job == nullptr);
+	ANKI_ASSERT(job == nullptr && "Probably forgot to wait for all jobs");
 	job = job_;
 	mutex.unlock();
 	condVar.notify_one(); // Wake the thread

+ 3 - 1
src/scene/SceneGraph.cpp

@@ -160,7 +160,7 @@ void SceneGraph::update(F32 prevUpdateTime, F32 crntTime, Renderer& renderer)
 		updateSceneNode(*n, prevUpdateTime, crntTime, *sectorGroup);
 	}
 #else
-	UpdateSceneNodesJob jobs2[ThreadPool::MAX_THREADS];
+	Array<UpdateSceneNodesJob, ThreadPool::MAX_THREADS> jobs2;
 
 	for(U i = 0; i < threadPool.getThreadsCount(); i++)
 	{
@@ -174,6 +174,8 @@ void SceneGraph::update(F32 prevUpdateTime, F32 crntTime, Renderer& renderer)
 
 		threadPool.assignNewJob(i, &job);
 	}
+
+	threadPool.waitForAllJobsToFinish();
 #endif
 
 	doVisibilityTests(*mainCam, *this, renderer);

+ 2 - 7
testapp/Main.cpp

@@ -3,14 +3,11 @@
 #include <fstream>
 
 #include "anki/input/Input.h"
-#include "anki/scene/Camera.h"
 #include "anki/math/Math.h"
 #include "anki/renderer/Renderer.h"
 #include "anki/core/App.h"
 #include "anki/resource/Mesh.h"
-#include "anki/scene/Light.h"
 #include "anki/resource/Material.h"
-#include "anki/scene/SceneGraph.h"
 #include "anki/resource/SkelAnim.h"
 #include "anki/physics/Character.h"
 #include "anki/renderer/Renderer.h"
@@ -19,12 +16,10 @@
 #include "anki/physics/RigidBody.h"
 #include "anki/script/ScriptManager.h"
 #include "anki/core/StdinListener.h"
-#include "anki/scene/ModelNode.h"
 #include "anki/resource/Model.h"
 #include "anki/core/Logger.h"
 #include "anki/util/Filesystem.h"
 #include "anki/util/HighRezTimer.h"
-#include "anki/scene/SkinNode.h"
 #include "anki/resource/Skin.h"
 #include "anki/event/EventManager.h"
 #include "anki/event/SceneColorEvent.h"
@@ -35,7 +30,7 @@
 #include "anki/core/Timestamp.h"
 #include "anki/core/NativeWindow.h"
 #include "anki/util/Functions.h"
-#include "anki/scene/ParticleEmitter.h"
+#include "anki/scene/Scene.h"
 
 using namespace anki;
 
@@ -469,7 +464,7 @@ void mainLoop()
 		Timestamp::increaseTimestamp();
 	}
 
-#if 1
+#if 0
 	MainRendererSingleton::get().takeScreenshot("screenshot.tga");
 #endif