Fix draw race condition regression.
Change-Id: Idcf7c19c2467edf941a8a426078b6f7d7779ab12
Reviewed-on: https://swiftshader-review.googlesource.com/4943
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-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 5535967..51bcee1 100644
--- a/src/Renderer/Renderer.cpp
+++ b/src/Renderer/Renderer.cpp
@@ -886,6 +886,12 @@
pixelProgress[cluster].processedPrimitives = primitive + count;
+ if(pixelProgress[cluster].processedPrimitives >= draw.count)
+ {
+ pixelProgress[cluster].drawCall++;
+ pixelProgress[cluster].processedPrimitives = 0;
+ }
+
int ref = atomicDecrement(&primitiveProgress[unit].references);
if(ref == 0)
@@ -981,12 +987,6 @@
}
}
- if(pixelProgress[cluster].processedPrimitives >= draw.count)
- {
- pixelProgress[cluster].drawCall++;
- pixelProgress[cluster].processedPrimitives = 0;
- }
-
pixelProgress[cluster].executing = false;
}