vkd3d-shader/hlsl: Parse list of state blocks.

This commit is contained in:
Francisco Casas
2024-03-18 21:57:36 -03:00
committed by Alexandre Julliard
parent 80320f6129
commit a99bcb1196
Notes: Alexandre Julliard 2024-04-11 17:02:42 -05:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/739
4 changed files with 83 additions and 25 deletions

View File

@@ -424,9 +424,12 @@ struct hlsl_ir_var
/* Scope that contains annotations for this variable. */
struct hlsl_scope *annotations;
/* The state block on the variable's declaration, if any.
/* A dynamic array containing the state block on the variable's declaration, if any.
* An array variable may contain multiple state blocks.
* These are only really used for effect profiles. */
struct hlsl_state_block *state_block;
struct hlsl_state_block **state_blocks;
unsigned int state_block_count;
size_t state_block_capacity;
/* Indexes of the IR instructions where the variable is first written and last read (liveness
* range). The IR instructions are numerated starting from 2, because 0 means unused, and 1