OSDN Git Service

Fix vertex attribute count constant.
authorNicolas Capens <capn@google.com>
Thu, 25 Jun 2015 19:25:29 +0000 (15:25 -0400)
committerNicolas Capens <capn@google.com>
Fri, 26 Jun 2015 14:45:20 +0000 (14:45 +0000)
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>
src/Main/Config.hpp
src/OpenGL/libGLES_CM/Context.h
src/OpenGL/libGLESv2/Context.h
src/Renderer/Context.cpp
src/Renderer/Context.hpp
src/Renderer/Renderer.cpp
src/Renderer/Renderer.hpp
src/Renderer/VertexProcessor.cpp
src/Renderer/VertexProcessor.hpp
src/Shader/VertexRoutine.cpp

index 320b035..de266c4 100644 (file)
@@ -69,6 +69,7 @@ enum
        OUTLINE_RESOLUTION = 4096,   // Maximum vertical resolution of the render target\r
        MIPMAP_LEVELS = 14,\r
        MAX_COLOR_ATTACHMENTS = 8,\r
+       VERTEX_ATTRIBUTES = 16,\r
        TEXTURE_IMAGE_UNITS = 16,\r
        VERTEX_TEXTURE_IMAGE_UNITS = 16,\r
        TOTAL_IMAGE_UNITS = TEXTURE_IMAGE_UNITS + VERTEX_TEXTURE_IMAGE_UNITS,\r
index 63f091b..644e6e8 100644 (file)
@@ -60,7 +60,7 @@ class IndexDataManager;
 \r
 enum\r
 {\r
-    MAX_VERTEX_ATTRIBS = 16,\r
+    MAX_VERTEX_ATTRIBS = VERTEX_ATTRIBUTES,\r
     MAX_VARYING_VECTORS = 10,\r
     MAX_TEXTURE_UNITS = 2,\r
     MAX_DRAW_BUFFERS = 1,\r
index 7d47574..d2b761f 100644 (file)
@@ -71,7 +71,7 @@ class VertexArray;
 \r
 enum\r
 {\r
-    MAX_VERTEX_ATTRIBS = 16,\r
+    MAX_VERTEX_ATTRIBS = VERTEX_ATTRIBUTES,\r
        MAX_UNIFORM_VECTORS = 256,   // Device limit\r
     MAX_VERTEX_UNIFORM_VECTORS = VERTEX_UNIFORM_VECTORS - 3,   // Reserve space for gl_DepthRange\r
     MAX_VARYING_VECTORS = 10,\r
index e067ad7..190801f 100644 (file)
@@ -201,7 +201,7 @@ namespace sw
                }
 
                // 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();
                }
index 94958cc..6b2aa79 100644 (file)
@@ -404,7 +404,7 @@ namespace sw
                bool colorUsed();\r
 \r
                Resource *texture[TOTAL_IMAGE_UNITS];\r
-               Stream input[TEXTURE_IMAGE_UNITS];\r
+               Stream input[VERTEX_ATTRIBUTES];\r
                Resource *indexBuffer;\r
 \r
                bool preTransformed;   // FIXME: Private\r
index f316a4e..d245b3a 100644 (file)
@@ -322,7 +322,7 @@ namespace sw
                        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 @@ namespace sw
                                        }
                                }
 
-                               for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+                               for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
                                {
                                        if(draw.vertexStream[i])
                                        {
index 894b4e0..2b6bbe1 100644 (file)
@@ -100,8 +100,8 @@ namespace sw
        {
                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 @@ namespace sw
                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;
index d5a394c..ae0be80 100644 (file)
@@ -116,7 +116,7 @@ namespace sw
 
        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 @@ namespace sw
                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;
index b10b7a0..5d17a91 100644 (file)
@@ -126,7 +126,7 @@ namespace sw
                                };\r
                        };\r
 \r
-                       Input input[TEXTURE_IMAGE_UNITS];\r
+                       Input input[VERTEX_ATTRIBUTES];\r
                        Output output[12];\r
                };\r
 \r
index fc6aa72..ca8a4c2 100644 (file)
@@ -99,7 +99,7 @@ namespace sw
 
        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);