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