Transform feedback primitives written query fix

pixelProgress[cluster].processedPrimitives could have been cleared
between the moment where it has been written and where it is read,
so I added a local variable to prevent this issue.

Change-Id: I495ed5c9e845c276890d6193b2fe4b8208f993d1
Reviewed-on: https://swiftshader-review.googlesource.com/5061
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Renderer/Renderer.cpp b/src/Renderer/Renderer.cpp
index 71c50e9..feee3d4 100644
--- a/src/Renderer/Renderer.cpp
+++ b/src/Renderer/Renderer.cpp
@@ -905,8 +905,9 @@
 		DrawData &data = *draw.data;
 		int primitive = primitiveProgress[unit].firstPrimitive;
 		int count = primitiveProgress[unit].primitiveCount;
+		int processedPrimitives = primitive + count;
 
-		pixelProgress[cluster].processedPrimitives = primitive + count;
+		pixelProgress[cluster].processedPrimitives = processedPrimitives;
 
 		if(pixelProgress[cluster].processedPrimitives >= draw.count)
 		{
@@ -947,7 +948,7 @@
 							}
 							break;
 						case Query::TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
-							atomicAdd((volatile int*)&query->data, pixelProgress[cluster].processedPrimitives);
+							atomicAdd((volatile int*)&query->data, processedPrimitives);
 							break;
 						default:
 							break;