VertexRoutine code for Transform Feedback
This cl adds the code that actually performs the copy of the
vertex shader outputs into transform feedback buffers. It
also contains a fix for symmetricNormalizedDepth, which must
be computed after the information was copied into the
transform feedback buffers, when transform feedback is active.
Change-Id: I418f94a15b9425bba0905c840f8cf4828233d0fb
Reviewed-on: https://swiftshader-review.googlesource.com/5172
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Renderer/VertexProcessor.hpp b/src/Renderer/VertexProcessor.hpp
index 9629c47..3af6690 100644
--- a/src/Renderer/VertexProcessor.hpp
+++ b/src/Renderer/VertexProcessor.hpp
@@ -35,9 +35,8 @@
struct VertexTask
{
- unsigned int vertexStart;
unsigned int vertexCount;
- unsigned int verticesPerPrimitive;
+ unsigned int primitiveStart;
VertexCache vertexCache;
};
@@ -76,6 +75,7 @@
bool pointScaleActive : 1;
bool transformFeedbackQueryEnabled : 1;
uint64_t transformFeedbackEnabled : 64;
+ unsigned char verticesPerPrimitive : 2; // 1 (points), 2 (lines) or 3 (triangles)
bool preTransformed : 1;
bool superSampling : 1;
@@ -275,7 +275,7 @@
const Matrix &getModelTransform(int i);
const Matrix &getViewTransform();
- const State update();
+ const State update(DrawType drawType);
Routine *routine(const State &state);
bool isFixedFunction();