vkd3d-shader: Record a global temporary count per sm4 shader.

Store it in the shader_desc, and declare temps from that when compiling SPIR-V,
instead of parsing dcl_instructions.

As part of this change, we declare a single, global temps array (with Private
scope instead of Function) which is as large as the maximum of all dcl_temps
instructions. It is not clear to me whether this will improve, hurt, or have no
significant effect on the lower-level compiler. An alternative is to still
redeclare a new temps array every time (although still with a smaller size).
This commit is contained in:
Zebediah Figura
2023-06-28 14:49:42 -05:00
committed by Alexandre Julliard
parent dfb2a316e6
commit e489098878
Notes: Alexandre Julliard 2023-07-04 23:25:44 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/255
3 changed files with 13 additions and 12 deletions

View File

@@ -829,6 +829,8 @@ struct vkd3d_shader_desc
struct shader_signature input_signature;
struct shader_signature output_signature;
struct shader_signature patch_constant_signature;
uint32_t temp_count;
};
struct vkd3d_shader_register_semantic