Fix vertex attribute count constant.

Change-Id: Ic0e4831bf3459d54b51e63ebe50b7394fb54e14c
Reviewed-on: https://swiftshader-review.googlesource.com/3562
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Main/Config.hpp b/src/Main/Config.hpp
index 320b035..de266c4 100644
--- a/src/Main/Config.hpp
+++ b/src/Main/Config.hpp
@@ -69,6 +69,7 @@
 	OUTLINE_RESOLUTION = 4096,   // Maximum vertical resolution of the render target

 	MIPMAP_LEVELS = 14,

 	MAX_COLOR_ATTACHMENTS = 8,

+	VERTEX_ATTRIBUTES = 16,

 	TEXTURE_IMAGE_UNITS = 16,

 	VERTEX_TEXTURE_IMAGE_UNITS = 16,

 	TOTAL_IMAGE_UNITS = TEXTURE_IMAGE_UNITS + VERTEX_TEXTURE_IMAGE_UNITS,

diff --git a/src/OpenGL/libGLES_CM/Context.h b/src/OpenGL/libGLES_CM/Context.h
index 63f091b..644e6e8 100644
--- a/src/OpenGL/libGLES_CM/Context.h
+++ b/src/OpenGL/libGLES_CM/Context.h
@@ -60,7 +60,7 @@
 

 enum

 {

-    MAX_VERTEX_ATTRIBS = 16,

+    MAX_VERTEX_ATTRIBS = VERTEX_ATTRIBUTES,

     MAX_VARYING_VECTORS = 10,

     MAX_TEXTURE_UNITS = 2,

     MAX_DRAW_BUFFERS = 1,

diff --git a/src/OpenGL/libGLESv2/Context.h b/src/OpenGL/libGLESv2/Context.h
index 7d47574..d2b761f 100644
--- a/src/OpenGL/libGLESv2/Context.h
+++ b/src/OpenGL/libGLESv2/Context.h
@@ -71,7 +71,7 @@
 

 enum

 {

-    MAX_VERTEX_ATTRIBS = 16,

+    MAX_VERTEX_ATTRIBS = VERTEX_ATTRIBUTES,

 	MAX_UNIFORM_VECTORS = 256,   // Device limit

     MAX_VERTEX_UNIFORM_VECTORS = VERTEX_UNIFORM_VECTORS - 3,   // Reserve space for gl_DepthRange

     MAX_VARYING_VECTORS = 10,

diff --git a/src/Renderer/Context.cpp b/src/Renderer/Context.cpp
index e067ad7..190801f 100644
--- a/src/Renderer/Context.cpp
+++ b/src/Renderer/Context.cpp
@@ -201,7 +201,7 @@
 		}
 
 		// Set vertex streams to null stream
-		for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+		for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
 		{
 			input[i].defaults();
 		}
diff --git a/src/Renderer/Context.hpp b/src/Renderer/Context.hpp
index 94958cc..6b2aa79 100644
--- a/src/Renderer/Context.hpp
+++ b/src/Renderer/Context.hpp
@@ -404,7 +404,7 @@
 		bool colorUsed();

 

 		Resource *texture[TOTAL_IMAGE_UNITS];

-		Stream input[TEXTURE_IMAGE_UNITS];

+		Stream input[VERTEX_ATTRIBUTES];

 		Resource *indexBuffer;

 

 		bool preTransformed;   // FIXME: Private

diff --git a/src/Renderer/Renderer.cpp b/src/Renderer/Renderer.cpp
index f316a4e..d245b3a 100644
--- a/src/Renderer/Renderer.cpp
+++ b/src/Renderer/Renderer.cpp
@@ -322,7 +322,7 @@
 			draw->setupPrimitives = setupPrimitives;
 			draw->setupState = setupState;
 
-			for(int i = 0; i < 16; i++)
+			for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
 			{
 				draw->vertexStream[i] = context->input[i].resource;
 				data->input[i] = context->input[i].buffer;
@@ -926,7 +926,7 @@
 					}
 				}
 
-				for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+				for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
 				{
 					if(draw.vertexStream[i])
 					{
diff --git a/src/Renderer/Renderer.hpp b/src/Renderer/Renderer.hpp
index 894b4e0..2b6bbe1 100644
--- a/src/Renderer/Renderer.hpp
+++ b/src/Renderer/Renderer.hpp
@@ -100,8 +100,8 @@
 	{
 		const void *constants;
 
-		const void *input[TEXTURE_IMAGE_UNITS];
-		unsigned int stride[TEXTURE_IMAGE_UNITS];
+		const void *input[VERTEX_ATTRIBUTES];
+		unsigned int stride[VERTEX_ATTRIBUTES];
 		Texture mipmap[TOTAL_IMAGE_UNITS];
 		const void *indices;
 
@@ -200,7 +200,7 @@
 		int (*setupPrimitives)(Renderer *renderer, int batch, int count);
 		SetupProcessor::State setupState;
 
-		Resource *vertexStream[TEXTURE_IMAGE_UNITS];
+		Resource *vertexStream[VERTEX_ATTRIBUTES];
 		Resource *indexBuffer;
 		Surface *renderTarget[4];
 		Surface *depthStencil;
diff --git a/src/Renderer/VertexProcessor.cpp b/src/Renderer/VertexProcessor.cpp
index d5a394c..ae0be80 100644
--- a/src/Renderer/VertexProcessor.cpp
+++ b/src/Renderer/VertexProcessor.cpp
@@ -116,7 +116,7 @@
 
 	void VertexProcessor::resetInputStreams(bool preTransformed)
 	{
-		for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+		for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
 		{
 			context->input[i].defaults();
 		}
@@ -806,7 +806,7 @@
 		state.superSampling = context->getSuperSampleCount() > 1;
 		state.multiSampling = context->getMultiSampleCount() > 1;
 
-		for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+		for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
 		{
 			state.input[i].type = context->input[i].type;
 			state.input[i].count = context->input[i].count;
diff --git a/src/Renderer/VertexProcessor.hpp b/src/Renderer/VertexProcessor.hpp
index b10b7a0..5d17a91 100644
--- a/src/Renderer/VertexProcessor.hpp
+++ b/src/Renderer/VertexProcessor.hpp
@@ -126,7 +126,7 @@
 				};

 			};

 

-			Input input[TEXTURE_IMAGE_UNITS];

+			Input input[VERTEX_ATTRIBUTES];

 			Output output[12];

 		};

 

diff --git a/src/Shader/VertexRoutine.cpp b/src/Shader/VertexRoutine.cpp
index fc6aa72..ca8a4c2 100644
--- a/src/Shader/VertexRoutine.cpp
+++ b/src/Shader/VertexRoutine.cpp
@@ -99,7 +99,7 @@
 
 	void VertexRoutine::readInput(Registers &r, UInt &index)
 	{
-		for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+		for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
 		{
 			Pointer<Byte> input = *Pointer<Pointer<Byte> >(r.data + OFFSET(DrawData,input) + sizeof(void*) * i);
 			UInt stride = *Pointer<UInt>(r.data + OFFSET(DrawData,stride) + sizeof(unsigned int) * i);