Use FixedVector for storing textures referenced by a framebuffer.
This improves the performance of Framebuffer::hasTextureAttachment 3X.
BUG=angleproject:2188
Change-Id: I6acc7f4440fe0232438182274d7bba6075530f38
Reviewed-on: https://chromium-review.googlesource.com/1159171
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Framebuffer.h b/src/libANGLE/Framebuffer.h
index 80b51a7..67a7ad8 100644
--- a/src/libANGLE/Framebuffer.h
+++ b/src/libANGLE/Framebuffer.h
@@ -12,6 +12,7 @@
#include <vector>
+#include "common/FixedVector.h"
#include "common/Optional.h"
#include "common/angleutils.h"
#include "libANGLE/Constants.h"
@@ -422,7 +423,10 @@
Optional<DirtyBits> mDirtyBitsGuard;
// A cache of attached textures for quick validation of feedback loops.
- mutable Optional<std::set<const FramebufferAttachmentObject *>> mAttachedTextures;
+ using FramebufferTextureAttachmentVector =
+ angle::FixedVector<const FramebufferAttachmentObject *,
+ IMPLEMENTATION_MAX_FRAMEBUFFER_ATTACHMENTS>;
+ mutable Optional<FramebufferTextureAttachmentVector> mAttachedTextures;
};
} // namespace gl