Commit 22be88e5 by Alexis Hetu Committed by Alexis Hétu

Increased varyings limit

For OpenGL ES 3.0, the varyings limit must be increased in order to meet the new lower limit. This doesn't solve how the varyings count is still verified at compile time instead of link time, but it allows us to remove an UNIMPLEMENTED() call. Bug b/37069434 Change-Id: Ib6641352b625d56c7c3cab119fadcdc19f794a5b Reviewed-on: https://swiftshader-review.googlesource.com/9188Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent a051886d
...@@ -87,8 +87,8 @@ namespace sw ...@@ -87,8 +87,8 @@ namespace sw
FRAGMENT_UNIFORM_VECTORS = 224, FRAGMENT_UNIFORM_VECTORS = 224,
VERTEX_UNIFORM_VECTORS = 256, VERTEX_UNIFORM_VECTORS = 256,
MAX_VERTEX_INPUTS = 16, MAX_VERTEX_INPUTS = 16,
MAX_VERTEX_OUTPUTS = 12, MAX_VERTEX_OUTPUTS = 22,
MAX_FRAGMENT_INPUTS = 10, MAX_FRAGMENT_INPUTS = 20,
MAX_FRAGMENT_UNIFORM_BLOCKS = 12, MAX_FRAGMENT_UNIFORM_BLOCKS = 12,
MAX_VERTEX_UNIFORM_BLOCKS = 12, MAX_VERTEX_UNIFORM_BLOCKS = 12,
MAX_UNIFORM_BUFFER_BINDINGS = MAX_FRAGMENT_UNIFORM_BLOCKS + MAX_VERTEX_UNIFORM_BLOCKS, // Limited to 127 by SourceParameter.bufferIndex in Shader.hpp MAX_UNIFORM_BUFFER_BINDINGS = MAX_FRAGMENT_UNIFORM_BLOCKS + MAX_VERTEX_UNIFORM_BLOCKS, // Limited to 127 by SourceParameter.bufferIndex in Shader.hpp
......
...@@ -2179,10 +2179,7 @@ template<typename T> bool Context::getIntegerv(GLenum pname, T *params) const ...@@ -2179,10 +2179,7 @@ template<typename T> bool Context::getIntegerv(GLenum pname, T *params) const
*params = MAX_UNIFORM_BUFFER_BINDINGS; *params = MAX_UNIFORM_BUFFER_BINDINGS;
return true; return true;
case GL_MAX_VARYING_COMPONENTS: case GL_MAX_VARYING_COMPONENTS:
UNIMPLEMENTED(); *params = MAX_VARYING_VECTORS * 4;
// FIXME: should be MAX_VARYING_VECTORS * 4, but MAX_VARYING_VECTORS
// must be increased (see MAX_VERTEX_OUTPUTS and MAX_FRAGMENT_INPUTS)
*params = 60;
return true; return true;
case GL_MAX_VERTEX_OUTPUT_COMPONENTS: case GL_MAX_VERTEX_OUTPUT_COMPONENTS:
*params = MAX_VERTEX_OUTPUT_VECTORS * 4; *params = MAX_VERTEX_OUTPUT_VECTORS * 4;
......
...@@ -77,7 +77,7 @@ enum ...@@ -77,7 +77,7 @@ enum
MAX_VERTEX_ATTRIBS = sw::MAX_VERTEX_INPUTS, MAX_VERTEX_ATTRIBS = sw::MAX_VERTEX_INPUTS,
MAX_UNIFORM_VECTORS = 256, // Device limit MAX_UNIFORM_VECTORS = 256, // Device limit
MAX_VERTEX_UNIFORM_VECTORS = sw::VERTEX_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange MAX_VERTEX_UNIFORM_VECTORS = sw::VERTEX_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange
MAX_VARYING_VECTORS = 10, MAX_VARYING_VECTORS = MIN(sw::MAX_FRAGMENT_INPUTS, sw::MAX_VERTEX_OUTPUTS),
MAX_TEXTURE_IMAGE_UNITS = sw::TEXTURE_IMAGE_UNITS, MAX_TEXTURE_IMAGE_UNITS = sw::TEXTURE_IMAGE_UNITS,
MAX_VERTEX_TEXTURE_IMAGE_UNITS = sw::VERTEX_TEXTURE_IMAGE_UNITS, MAX_VERTEX_TEXTURE_IMAGE_UNITS = sw::VERTEX_TEXTURE_IMAGE_UNITS,
MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + MAX_VERTEX_TEXTURE_IMAGE_UNITS, MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + MAX_VERTEX_TEXTURE_IMAGE_UNITS,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment