yuzu-android/src/video_core/renderer_vulkan
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
..
shaders
fixed_pipeline_state.cpp fixed_pipeline_state: Hash and compare the whole structure 2020-04-18 19:57:26 -03:00
fixed_pipeline_state.h fixed_pipeline_state: Hash and compare the whole structure 2020-04-18 19:57:26 -03:00
maxwell_to_vk.cpp maxwell_to_vk: Add uint16 vertex formats 2020-04-15 04:06:30 -03:00
maxwell_to_vk.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
renderer_vulkan.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
renderer_vulkan.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_blit_screen.cpp vk_blit_screen: Initialize all members in VkPipelineViewportStateCreateInfo 2020-04-15 03:30:08 -03:00
vk_blit_screen.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_buffer_cache.cpp buffer_cache: Return handles instead of pointer to handles 2020-04-16 02:33:34 -03:00
vk_buffer_cache.h buffer_cache: Return handles instead of pointer to handles 2020-04-16 02:33:34 -03:00
vk_compute_pass.cpp buffer_cache: Return handles instead of pointer to handles 2020-04-16 02:33:34 -03:00
vk_compute_pass.h buffer_cache: Return handles instead of pointer to handles 2020-04-16 02:33:34 -03:00
vk_compute_pipeline.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_compute_pipeline.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_descriptor_pool.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_descriptor_pool.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_device.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_device.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_graphics_pipeline.cpp fixed_pipeline_state: Pack blending state 2020-04-18 19:23:35 -03:00
vk_graphics_pipeline.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_image.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_image.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_memory_manager.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_memory_manager.h video_core: Amend doxygen comment references 2020-04-15 22:33:29 -04:00
vk_pipeline_cache.cpp fixed_pipeline_state: Pack rasterizer state 2020-04-18 19:22:57 -03:00
vk_pipeline_cache.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_query_cache.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_query_cache.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_rasterizer.cpp fixed_pipeline_state: Pack attribute state 2020-04-18 19:21:19 -03:00
vk_rasterizer.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_renderpass_cache.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_renderpass_cache.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_resource_manager.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_resource_manager.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_sampler_cache.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_sampler_cache.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_scheduler.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_scheduler.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_shader_decompiler.cpp Merge pull request #3612 from ReinUsesLisp/red 2020-04-15 15:03:49 -04:00
vk_shader_decompiler.h
vk_shader_util.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_shader_util.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_staging_buffer_pool.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_staging_buffer_pool.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_state_tracker.cpp
vk_state_tracker.h
vk_stream_buffer.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_stream_buffer.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_swapchain.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_swapchain.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_texture_cache.cpp renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_texture_cache.h renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
vk_update_descriptor.cpp buffer_cache: Return handles instead of pointer to handles 2020-04-16 02:33:34 -03:00
vk_update_descriptor.h buffer_cache: Return handles instead of pointer to handles 2020-04-16 02:33:34 -03:00
wrapper.cpp
wrapper.h