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