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/perf | Loading commit data... | |
| ANGLEPerfTest.cpp | Loading commit data... | |
| ANGLEPerfTest.h | Loading commit data... | |
| BindingPerf.cpp | Loading commit data... | |
| BitSetIteratorPerf.cpp | Loading commit data... | |
| BlitFramebufferPerf.cpp | Loading commit data... | |
| BufferSubData.cpp | Loading commit data... | |
| CompilerPerf.cpp | Loading commit data... | |
| DispatchComputePerf.cpp | Loading commit data... | |
| DrawCallPerf.cpp | Loading commit data... | |
| DrawCallPerfParams.cpp | Loading commit data... | |
| DrawCallPerfParams.h | Loading commit data... | |
| DrawElementsPerf.cpp | Loading commit data... | |
| DynamicPromotionPerfTest.cpp | Loading commit data... | |
| EGLInitializePerf.cpp | Loading commit data... | |
| EGLMakeCurrentPerf.cpp | Loading commit data... | |
| IndexConversionPerf.cpp | Loading commit data... | |
| IndexDataManagerTest.cpp | Loading commit data... | |
| InstancingPerf.cpp | Loading commit data... | |
| InterleavedAttributeData.cpp | Loading commit data... | |
| LinkProgramPerfTest.cpp | Loading commit data... | |
| MultiviewPerf.cpp | Loading commit data... | |
| PointSprites.cpp | Loading commit data... | |
| README.md | Loading commit data... | |
| ResultPerf.cpp | Loading commit data... | |
| TexSubImage.cpp | Loading commit data... | |
| TextureSampling.cpp | Loading commit data... | |
| TexturesPerf.cpp | Loading commit data... | |
| UniformsPerf.cpp | Loading commit data... | |
| VulkanCommandBufferPerf.cpp | Loading commit data... | |
| VulkanPipelineCachePerf.cpp | Loading commit data... |