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 |
|---|---|---|
| .. | ||
| fuchsia_egl | Loading commit data... | |
| third_party | Loading commit data... | |
| vulkan | Loading commit data... | |
| Color.h | Loading commit data... | |
| Color.inc | Loading commit data... | |
| FastVector.h | Loading commit data... | |
| FastVector_unittest.cpp | Loading commit data... | |
| FixedVector.h | Loading commit data... | |
| FixedVector_unittest.cpp | Loading commit data... | |
| Float16ToFloat32.cpp | Loading commit data... | |
| Float16ToFloat32.py | Loading commit data... | |
| MemoryBuffer.cpp | Loading commit data... | |
| MemoryBuffer.h | Loading commit data... | |
| Optional.h | Loading commit data... | |
| Optional_unittest.cpp | Loading commit data... | |
| PackedEGLEnums_autogen.cpp | Loading commit data... | |
| PackedEGLEnums_autogen.h | Loading commit data... | |
| PackedEnums.cpp | Loading commit data... | |
| PackedEnums.h | Loading commit data... | |
| PackedGLEnums_autogen.cpp | Loading commit data... | |
| PackedGLEnums_autogen.h | Loading commit data... | |
| PoolAlloc.cpp | Loading commit data... | |
| PoolAlloc.h | Loading commit data... | |
| PoolAlloc_unittest.cpp | Loading commit data... | |
| aligned_memory.cpp | Loading commit data... | |
| aligned_memory.h | Loading commit data... | |
| aligned_memory_unittest.cpp | Loading commit data... | |
| android_util.cpp | Loading commit data... | |
| android_util.h | Loading commit data... | |
| angleutils.cpp | Loading commit data... | |
| angleutils.h | Loading commit data... | |
| angleutils_unittest.cpp | Loading commit data... | |
| apple_platform_utils.h | Loading commit data... | |
| bitset_utils.h | Loading commit data... | |
| bitset_utils_unittest.cpp | Loading commit data... | |
| debug.cpp | Loading commit data... | |
| debug.h | Loading commit data... | |
| event_tracer.cpp | Loading commit data... | |
| event_tracer.h | Loading commit data... | |
| gen_packed_gl_enums.py | Loading commit data... | |
| gen_uniform_type_table.py | Loading commit data... | |
| hash_utils.h | Loading commit data... | |
| hash_utils_unittest.cpp | Loading commit data... | |
| mathutil.cpp | Loading commit data... | |
| mathutil.h | Loading commit data... | |
| mathutil_unittest.cpp | Loading commit data... | |
| matrix_utils.cpp | Loading commit data... | |
| matrix_utils.h | Loading commit data... | |
| matrix_utils_unittest.cpp | Loading commit data... | |
| packed_egl_enums.json | Loading commit data... | |
| packed_gl_enums.json | Loading commit data... | |
| platform.h | Loading commit data... | |
| string_utils.cpp | Loading commit data... | |
| string_utils.h | Loading commit data... | |
| string_utils_unittest.cpp | Loading commit data... | |
| system_utils.cpp | Loading commit data... | |
| system_utils.h | Loading commit data... | |
| system_utils_linux.cpp | Loading commit data... | |
| system_utils_mac.cpp | Loading commit data... | |
| system_utils_posix.cpp | Loading commit data... | |
| system_utils_unittest.cpp | Loading commit data... | |
| system_utils_win.cpp | Loading commit data... | |
| system_utils_win32.cpp | Loading commit data... | |
| system_utils_winuwp.cpp | Loading commit data... | |
| tls.cpp | Loading commit data... | |
| tls.h | Loading commit data... | |
| uniform_type_info_autogen.cpp | Loading commit data... | |
| utilities.cpp | Loading commit data... | |
| utilities.h | Loading commit data... | |
| utilities_unittest.cpp | Loading commit data... | |
| vector_utils.h | Loading commit data... | |
| vector_utils_unittest.cpp | Loading commit data... | |
| version.h | Loading commit data... |