citra/src
ReinUsesLisp d62f57cf5a fixed_pipeline_state: Hash and compare the whole structure
Pad FixedPipelineState's size to 384 bytes to be a multiple of 16.

Compare the whole struct with std::memcmp and hash with CityHash. Using
CityHash instead of a naive hash should reduce the number of collisions.
Improve used type traits to ensure this operation is safe.

With these changes the improvements to the hashable pipeline state are:

Optimized structure
Hash:            89 ns
Comparison:     103 ns
Construction*:  164 ns
Struct size:    384 bytes

Original structure
Hash:           148 ns
Equal:          174 ns
Construction*:  281 ns
Size:          1384 bytes

* Attribute state initialization is not measured

These measures are averages taken with std::chrono::high_accuracy_clock
on MSVC shipped on Visual Studio 16.6.0 Preview 2.1.
2020-04-18 19:57:26 -03:00
..
audio_core core: memory: Move to Core::Memory namespace. 2020-04-17 00:59:28 -04:00
common Merge pull request #3672 from lioncash/null 2020-04-17 17:02:35 -04:00
core core: hle: Address various feedback & code cleanup. 2020-04-17 00:59:36 -04:00
input_common Merge pull request #3673 from lioncash/extra 2020-04-16 21:12:33 -04:00
tests arm_test_common: Updates for new VMM. 2020-04-17 00:59:33 -04:00
video_core fixed_pipeline_state: Hash and compare the whole structure 2020-04-18 19:57:26 -03:00
web_service Merge pull request #3673 from lioncash/extra 2020-04-16 21:12:33 -04:00
yuzu CMakeLists: Specify -Wextra on linux builds 2020-04-15 21:33:46 -04:00
yuzu_cmd yuzu: Drop SDL2 and Qt frontend Vulkan requirements 2020-04-07 16:32:19 -03:00
yuzu_tester yuzu: Drop SDL2 and Qt frontend Vulkan requirements 2020-04-07 16:32:19 -03:00
.clang-format
CMakeLists.txt CMakeLists: Specify -Wextra on linux builds 2020-04-15 21:33:46 -04:00