mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07: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.
This commit is contained in:
committed by
Henri Verbeet
parent
3a21daa49e
commit
a2aeb3a142
Notes:
Henri Verbeet
2024-09-23 15:57:44 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1103
@@ -59,6 +59,8 @@
|
||||
#define VKD3D_VEC4_SIZE 4
|
||||
#define VKD3D_DVEC2_SIZE 2
|
||||
|
||||
#define VKD3D_SHADER_COMPONENT_TYPE_COUNT (VKD3D_SHADER_COMPONENT_UINT64 + 1)
|
||||
|
||||
enum vkd3d_shader_error
|
||||
{
|
||||
VKD3D_SHADER_ERROR_DXBC_INVALID_SIZE = 1,
|
||||
|
Reference in New Issue
Block a user