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);
 			}
 		}
 	}