Implements a transition table from Pipeline Cache entry to state change neighbouring Pipeline Cache entries. We use a 64-bit mask to do a quick scan over the pipeline desc. This ends up being a lot faster than doing a full hash and memcmp over the pipeline description. Note that there could be future optimizations to this design. We might keep a hash map of the pipeline transitions instead of a list. Or use a sorted list. This could speed up the search when there are many transitions for cache entries. Also we could skip the transition table and opt to do a full hash when there are more than a configurable number of dirty states. This might be a bit faster in some cases. Likely this will be something we can add performance tests for in the future. Documentation is also added in a README file for the Vulkan back end. This will be extended over time. Improves performance about 30-35% on the VBO state change test. Bug: angleproject:3013 Change-Id: I793f9e3efd8887acf00ad60e4ac2502a54c95dee Reviewed-on: https://chromium-review.googlesource.com/c/1369287 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:Yuly Novikov <ynovikov@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| third_party | Loading commit data... | |
| Color.h | Loading commit data... | |
| Color.inl | 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... | |
| aligned_memory.cpp | Loading commit data... | |
| aligned_memory.h | Loading commit data... | |
| aligned_memory_unittest.cpp | Loading commit data... | |
| angleutils.cpp | Loading commit data... | |
| angleutils.h | Loading commit data... | |
| angleutils_unittest.cpp | 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_win.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... |