Use the main thread for draw execution when single-threaded.
Bug 23073037
Change-Id: I47d5a7d80dc48dffae0014fbf619810290c30628
Reviewed-on: https://swiftshader-review.googlesource.com/3840
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Renderer/Renderer.cpp b/src/Renderer/Renderer.cpp
index 197802f..e17bc11 100644
--- a/src/Renderer/Renderer.cpp
+++ b/src/Renderer/Renderer.cpp
@@ -610,14 +610,24 @@
nextDraw++;
schedulerMutex.unlock();
- if(!threadsAwake)
+ if(threadCount > 1)
{
- suspend[0]->wait();
+ if(!threadsAwake)
+ {
+ suspend[0]->wait();
+ threadsAwake = 1;
+ task[0].type = Task::RESUME;
+
+ resume[0]->signal();
+ }
+ }
+ else // Use main thread for draw execution
+ {
threadsAwake = 1;
task[0].type = Task::RESUME;
- resume[0]->signal();
+ taskLoop(0);
}
}
}