Commit f4fbcb8d by Alexis Hetu Committed by Alexis Hétu

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/5061Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent c6a57cb7
...@@ -905,8 +905,9 @@ namespace sw ...@@ -905,8 +905,9 @@ namespace sw
DrawData &data = *draw.data; DrawData &data = *draw.data;
int primitive = primitiveProgress[unit].firstPrimitive; int primitive = primitiveProgress[unit].firstPrimitive;
int count = primitiveProgress[unit].primitiveCount; int count = primitiveProgress[unit].primitiveCount;
int processedPrimitives = primitive + count;
pixelProgress[cluster].processedPrimitives = primitive + count; pixelProgress[cluster].processedPrimitives = processedPrimitives;
if(pixelProgress[cluster].processedPrimitives >= draw.count) if(pixelProgress[cluster].processedPrimitives >= draw.count)
{ {
...@@ -947,7 +948,7 @@ namespace sw ...@@ -947,7 +948,7 @@ namespace sw
} }
break; break;
case Query::TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: case Query::TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
atomicAdd((volatile int*)&query->data, pixelProgress[cluster].processedPrimitives); atomicAdd((volatile int*)&query->data, processedPrimitives);
break; break;
default: default:
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment