Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 3a21daa4 by Giovanni Mascellani at 2024-09-23T15:48:35+02:00 vkd3d-shader/spirv: Rewrite vkd3d_spirv_get_type_id_for_data_type() in terms of vkd3d_spirv_get_type_id().
- - - - - a2aeb3a1 by Giovanni Mascellani at 2024-09-23T15:48:35+02:00 vkd3d-shader/spirv: Cache numeric types without through the general declaration cache.
Numeric types are used very frequently, and doing a tree search each time one is needed tends to waste a lot of time.
I ran the compilation of ~1000 DXBC-TPF shaders randomly taken from my collection and measured the performance using callgrind and the kcachegrind "cycle count" estimation.
BEFORE: * 1,764,035,136 cycles * 1,767,948,767 cycles * 1,773,927,734 cycles
AFTER: * 1,472,384,755 cycles * 1,469,506,188 cycles * 1,470,191,425 cycles
So callgrind would estimate a 16% improvement at least.
- - - - -
2 changed files:
- libs/vkd3d-shader/spirv.c - libs/vkd3d-shader/vkd3d_shader_private.h
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/945e8a90249410b7698d3500ad4d4...