vkd3d-shader/ir: Encode I/O declarations in vsir_program.

Most I/O registers are already described by the shader signatures.
The registers that are not do not have any property other then
being used by the program or not, so they can be collectively
described with a bitmap.
This commit is contained in:
Giovanni Mascellani
2024-11-17 23:27:49 +01:00
committed by Henri Verbeet
parent a92b602b33
commit 18e422dfe4
Notes: Henri Verbeet 2024-12-03 14:56:21 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1288
6 changed files with 163 additions and 48 deletions

View File

@@ -1433,6 +1433,7 @@ struct vsir_program
enum vsir_control_flow_type cf_type;
enum vsir_normalisation_level normalisation_level;
enum vkd3d_tessellator_domain tess_domain;
uint32_t io_dcls[VKD3D_BITMAP_SIZE(VKD3DSPR_COUNT)];
const char **block_names;
size_t block_name_count;