Refactor uniform block binding
Remove mUniformBlockBindings and move its bindings to mUniformBlocks.
BUG=angleproject:1442
Change-Id: I62b4471990a44e626d2357c41cb914abc27cb18f
Reviewed-on: https://chromium-review.googlesource.com/532834
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Program.h b/src/libANGLE/Program.h
index c47f18e..b0e629a 100644
--- a/src/libANGLE/Program.h
+++ b/src/libANGLE/Program.h
@@ -24,11 +24,12 @@
#include "common/mathutil.h"
#include "common/Optional.h"
-#include "libANGLE/angletypes.h"
#include "libANGLE/Constants.h"
#include "libANGLE/Debug.h"
#include "libANGLE/Error.h"
#include "libANGLE/RefCountObject.h"
+#include "libANGLE/Uniform.h"
+#include "libANGLE/angletypes.h"
namespace rx
{
@@ -48,8 +49,6 @@
class InfoLog;
class Buffer;
class Framebuffer;
-struct UniformBlock;
-struct LinkedUniform;
struct PackedVarying;
extern const char * const g_fakepath;
@@ -216,8 +215,8 @@
GLint getTransformFeedbackBufferMode() const { return mTransformFeedbackBufferMode; }
GLuint getUniformBlockBinding(GLuint uniformBlockIndex) const
{
- ASSERT(uniformBlockIndex < IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS);
- return mUniformBlockBindings[uniformBlockIndex];
+ ASSERT(uniformBlockIndex < mUniformBlocks.size());
+ return mUniformBlocks[uniformBlockIndex].binding;
}
const UniformBlockBindingMask &getActiveUniformBlockBindingsMask() const
{
@@ -238,12 +237,6 @@
const sh::WorkGroupSize &getComputeShaderLocalSize() const { return mComputeShaderLocalSize; }
const RangeUI &getSamplerUniformRange() const { return mSamplerUniformRange; }
- using UniformBlockBindingArray =
- std::array<GLuint, IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS>;
- const UniformBlockBindingArray &getUniformBlockBindings() const
- {
- return mUniformBlockBindings;
- }
const std::vector<TransformFeedbackVarying> &getLinkedTransformFeedbackVaryings() const
{
return mLinkedTransformFeedbackVaryings;
@@ -273,7 +266,7 @@
std::vector<TransformFeedbackVarying> mLinkedTransformFeedbackVaryings;
GLenum mTransformFeedbackBufferMode;
- UniformBlockBindingArray mUniformBlockBindings;
+ // For faster iteration on the blocks currently being bound.
UniformBlockBindingMask mActiveUniformBlockBindings;
std::vector<sh::Attribute> mAttributes;