Introduces a FastUnorderedMap class that uses FastVector. This type uses static storage for up to a small fixed number of elements and uses dynamic storage for anything larger. Local testing shows this almost fully solves the regression from using unordered_map. It's still slightly slower than using no tracking (<5%). Very degenerate cases which track dozens or more buffers will still have significant overhead. For almost all applications that use only a few buffers per RenderPass this will be very fast. Test: angle_perftests, *vulkan_null_index_buffer_changed_ushort Bug: angleproject:4950 Bug: angleproject:4429 Change-Id: I39edeaaa159124167f1ea23ad2e6eac5e9220d0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2348108Reviewed-by:Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by:
Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| android_system_settings | Loading commit data... | |
| common | Loading commit data... | |
| compiler | Loading commit data... | |
| feature_support_util | Loading commit data... | |
| gpu_info_util | Loading commit data... | |
| image_util | Loading commit data... | |
| libANGLE | Loading commit data... | |
| libEGL | Loading commit data... | |
| libGL | Loading commit data... | |
| libGLESv1_CM | Loading commit data... | |
| libGLESv2 | Loading commit data... | |
| tests | Loading commit data... | |
| third_party | Loading commit data... | |
| commit_id.py | Loading commit data... | |
| compiler.gni | Loading commit data... | |
| copy_compiler_dll.bat | Loading commit data... | |
| libGLESv2.gni | Loading commit data... |