Commit 82b3d157 by Alexis Hetu Committed by Alexis Hétu

Defined uniform block related constants

A few numbers didn't match between the default value entered in Context.cpp and the constants from Config.hpp. A few default values were also erroneously larger than required. Constants were centralized in Config.hpp to solve the issue. Change-Id: I60e5d93c43ce61e125c261bdf07ce50e7130a296 Reviewed-on: https://swiftshader-review.googlesource.com/4742Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent 2ad9202d
......@@ -83,11 +83,17 @@ enum
TOTAL_IMAGE_UNITS = TEXTURE_IMAGE_UNITS + VERTEX_TEXTURE_IMAGE_UNITS,
FRAGMENT_UNIFORM_VECTORS = 224,
VERTEX_UNIFORM_VECTORS = 256,
MAX_UNIFORM_BLOCKS_COMPONENTS = 49152,
MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = MAX_UNIFORM_BLOCKS_COMPONENTS + 4 * FRAGMENT_UNIFORM_VECTORS,
MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = MAX_UNIFORM_BLOCKS_COMPONENTS + 4 * VERTEX_UNIFORM_VECTORS,
MAX_FRAGMENT_UNIFORM_COMPONENTS = FRAGMENT_UNIFORM_VECTORS * 4,
MAX_VERTEX_UNIFORM_COMPONENTS = VERTEX_UNIFORM_VECTORS * 4,
MAX_FRAGMENT_UNIFORM_BLOCKS = 12,
MAX_VERTEX_UNIFORM_BLOCKS = 12,
MAX_UNIFORM_BLOCK_SIZE = 16384,
MAX_FRAGMENT_UNIFORM_BLOCKS_COMPONENTS = MAX_FRAGMENT_UNIFORM_BLOCKS * MAX_UNIFORM_BLOCK_SIZE / 4,
MAX_VERTEX_UNIFORM_BLOCKS_COMPONENTS = MAX_VERTEX_UNIFORM_BLOCKS * MAX_UNIFORM_BLOCK_SIZE / 4,
MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = MAX_FRAGMENT_UNIFORM_BLOCKS_COMPONENTS + MAX_FRAGMENT_UNIFORM_COMPONENTS,
MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = MAX_VERTEX_UNIFORM_BLOCKS_COMPONENTS + MAX_VERTEX_UNIFORM_COMPONENTS,
MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 4,
MAX_UNIFORM_BUFFER_BINDINGS = 36, // 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
MAX_CLIP_PLANES = 6,
RENDERTARGETS = 4,
};
......
......@@ -2233,12 +2233,10 @@ template<typename T> bool Context::getIntegerv(GLenum pname, T *params) const
*params = 128;
break;
case GL_MAX_FRAGMENT_UNIFORM_BLOCKS: // integer, at least 12
UNIMPLEMENTED();
*params = 12;
*params = MAX_FRAGMENT_UNIFORM_BLOCKS;
break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: // integer, at least 1024
UNIMPLEMENTED();
*params = 1024;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: // integer, at least 896
*params = MAX_FRAGMENT_UNIFORM_COMPONENTS;
break;
case GL_MAX_PROGRAM_TEXEL_OFFSET: // integer, minimum is 7
UNIMPLEMENTED();
......@@ -2265,10 +2263,9 @@ template<typename T> bool Context::getIntegerv(GLenum pname, T *params) const
*params = 4;
break;
case GL_MAX_UNIFORM_BLOCK_SIZE: // integer, at least 16384
UNIMPLEMENTED();
*params = 16384;
*params = MAX_UNIFORM_BLOCK_SIZE;
break;
case GL_MAX_UNIFORM_BUFFER_BINDINGS: // integer, at least 36
case GL_MAX_UNIFORM_BUFFER_BINDINGS: // integer, at least 24
*params = IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS;
break;
case GL_MAX_VARYING_COMPONENTS: // integer, at least 60
......@@ -2280,12 +2277,10 @@ template<typename T> bool Context::getIntegerv(GLenum pname, T *params) const
*params = 64;
break;
case GL_MAX_VERTEX_UNIFORM_BLOCKS: // integer, at least 12
UNIMPLEMENTED();
*params = 12;
*params = MAX_VERTEX_UNIFORM_BLOCKS;
break;
case GL_MAX_VERTEX_UNIFORM_COMPONENTS: // integer, at least 1024
UNIMPLEMENTED();
*params = 1024;
*params = MAX_VERTEX_UNIFORM_COMPONENTS;
break;
case GL_MIN_PROGRAM_TEXEL_OFFSET: // integer, maximum is -8
UNIMPLEMENTED();
......
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