Make the number of fragment inputs configurable.
Change-Id: I2c618c03d00718951907e81fcd600155751aac89
Reviewed-on: https://swiftshader-review.googlesource.com/5385
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Renderer/PixelProcessor.cpp b/src/Renderer/PixelProcessor.cpp
index 0c90cbc..d8f1be2 100644
--- a/src/Renderer/PixelProcessor.cpp
+++ b/src/Renderer/PixelProcessor.cpp
@@ -1072,7 +1072,7 @@
}
else
{
- for(int interpolant = 0; interpolant < 10; interpolant++)
+ for(int interpolant = 0; interpolant < MAX_FRAGMENT_INPUTS; interpolant++)
{
for(int component = 0; component < 4; component++)
{
@@ -1082,8 +1082,8 @@
switch(context->pixelShader->semantic[interpolant][component].usage)
{
- case Shader::USAGE_TEXCOORD: flat = point && !sprite; break;
- case Shader::USAGE_COLOR: flat = flatShading; break;
+ case Shader::USAGE_TEXCOORD: flat = point && !sprite; break;
+ case Shader::USAGE_COLOR: flat = flatShading; break;
}
state.interpolant[interpolant].component |= 1 << component;
@@ -1099,7 +1099,7 @@
if(state.centroid)
{
- for(int interpolant = 0; interpolant < 10; interpolant++)
+ for(int interpolant = 0; interpolant < MAX_FRAGMENT_INPUTS; interpolant++)
{
for(int component = 0; component < 4; component++)
{
diff --git a/src/Renderer/PixelProcessor.hpp b/src/Renderer/PixelProcessor.hpp
index 88fd654..bfa3476 100644
--- a/src/Renderer/PixelProcessor.hpp
+++ b/src/Renderer/PixelProcessor.hpp
@@ -102,12 +102,11 @@
{
Interpolant color[2];
Interpolant texture[8];
+ Interpolant fog;
};
- Interpolant interpolant[10];
+ Interpolant interpolant[MAX_FRAGMENT_INPUTS];
};
-
- Interpolant fog;
};
struct State : States
@@ -271,7 +270,7 @@
virtual void setFillMode(FillMode fillMode);
virtual void setShadingMode(ShadingMode shadingMode);
-
+
virtual void setAlphaBlendEnable(bool alphaBlendEnable);
virtual void setSourceBlendFactor(BlendFactor sourceBlendFactor);
virtual void setDestBlendFactor(BlendFactor destBlendFactor);
diff --git a/src/Renderer/Primitive.hpp b/src/Renderer/Primitive.hpp
index 83e3a77..872281d 100644
--- a/src/Renderer/Primitive.hpp
+++ b/src/Renderer/Primitive.hpp
@@ -51,13 +51,12 @@
{
PlaneEquation C[2][4];
PlaneEquation T[8][4];
+ PlaneEquation f;
};
- PlaneEquation V[10][4];
+ PlaneEquation V[MAX_FRAGMENT_INPUTS][4];
};
- PlaneEquation f;
-
float area;
// Masks for two-sided stencil
diff --git a/src/Renderer/QuadRasterizer.cpp b/src/Renderer/QuadRasterizer.cpp
index 5bc500f..691d325 100644
--- a/src/Renderer/QuadRasterizer.cpp
+++ b/src/Renderer/QuadRasterizer.cpp
@@ -237,7 +237,7 @@
Dw = *Pointer<Float4>(primitive + OFFSET(Primitive,w.C), 16) + yyyy * *Pointer<Float4>(primitive + OFFSET(Primitive,w.B), 16);
}
- for(int interpolant = 0; interpolant < 10; interpolant++)
+ for(int interpolant = 0; interpolant < MAX_FRAGMENT_INPUTS; interpolant++)
{
for(int component = 0; component < 4; component++)
{
diff --git a/src/Renderer/QuadRasterizer.hpp b/src/Renderer/QuadRasterizer.hpp
index 51d578d..5616112 100644
--- a/src/Renderer/QuadRasterizer.hpp
+++ b/src/Renderer/QuadRasterizer.hpp
@@ -36,7 +36,7 @@
Float4 Dz[4];
Float4 Dw;
- Float4 Dv[10][4];
+ Float4 Dv[MAX_FRAGMENT_INPUTS][4];
Float4 Df;
UInt occlusion;
diff --git a/src/Renderer/SetupProcessor.cpp b/src/Renderer/SetupProcessor.cpp
index 6dccc8d..9075719 100644
--- a/src/Renderer/SetupProcessor.cpp
+++ b/src/Renderer/SetupProcessor.cpp
@@ -104,7 +104,7 @@
state.pointSizeRegister = Pts;
}
- for(int interpolant = 0; interpolant < 10; interpolant++)
+ for(int interpolant = 0; interpolant < MAX_FRAGMENT_INPUTS; interpolant++)
{
for(int component = 0; component < 4; component++)
{
@@ -124,7 +124,7 @@
if(context->vertexShader && context->pixelShader)
{
- for(int interpolant = 0; interpolant < 10; interpolant++)
+ for(int interpolant = 0; interpolant < MAX_FRAGMENT_INPUTS; interpolant++)
{
for(int component = 0; component < 4; component++)
{
@@ -158,7 +158,7 @@
}
else if(context->preTransformed && context->pixelShader)
{
- for(int interpolant = 0; interpolant < 10; interpolant++)
+ for(int interpolant = 0; interpolant < MAX_FRAGMENT_INPUTS; interpolant++)
{
for(int component = 0; component < 4; component++)
{
diff --git a/src/Renderer/SetupProcessor.hpp b/src/Renderer/SetupProcessor.hpp
index 2ef9fdf..2750d4c 100644
--- a/src/Renderer/SetupProcessor.hpp
+++ b/src/Renderer/SetupProcessor.hpp
@@ -67,12 +67,11 @@
{
Gradient color[2][4];
Gradient texture[8][4];
+ Gradient fog;
};
- Gradient gradient[10][4];
+ Gradient gradient[MAX_FRAGMENT_INPUTS][4];
};
-
- Gradient fog;
};
struct State : States