Fix vertex stream count and normalized data layout.
Bug swiftshader:86
Change-Id: Ide76f9e7d8c490e5057959e1a7c28dfc7119151a
Reviewed-on: https://swiftshader-review.googlesource.com/13428
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Corentin Wallez <cwallez@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/tests/fuzzers/VertexRoutineFuzzer.cpp b/tests/fuzzers/VertexRoutineFuzzer.cpp
index edfe018..ef97774 100644
--- a/tests/fuzzers/VertexRoutineFuzzer.cpp
+++ b/tests/fuzzers/VertexRoutineFuzzer.cpp
@@ -26,6 +26,7 @@
#include <cstdint>
#include <memory>
+#include <cassert>
namespace {
@@ -149,11 +150,13 @@
return 0;
}
+ constexpr int MAX_ATTRIBUTE_COMPONENTS = 4;
+
struct Stream
{
- uint8_t count : BITS(sw::STREAMTYPE_LAST);
- bool normalized;
- uint8_t reserved : 8 - BITS(sw::STREAMTYPE_LAST) - 1;
+ uint8_t count : BITS(MAX_ATTRIBUTE_COMPONENTS);
+ bool normalized : 1;
+ uint8_t reserved : 8 - BITS(MAX_ATTRIBUTE_COMPONENTS) - 1;
};
for(int i = 0; i < sw::MAX_VERTEX_INPUTS; i++)
@@ -162,7 +165,7 @@
Stream stream = (Stream&)data[1 + 2 * i + 1];
if(type > sw::STREAMTYPE_LAST) return 0;
- if(stream.count > 4) return 0;
+ if(stream.count > MAX_ATTRIBUTE_COMPONENTS) return 0;
if(stream.reserved != 0) return 0;
state.input[i].type = type;
@@ -199,5 +202,12 @@
sw::VertexProgram program(state, bytecodeShader.get());
program.generate();
+ // TODO
+// sw::Routine *routine = program(L"VertexRoutine");
+// assert(routine);
+// const void *entry = routine->getEntry();
+// assert(entry);
+// delete routine;
+
return 0;
}