Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl.h:
+ * name[lhs_array_size] = args[0] + * - or - + * name[lhs_array_size] = {args[0], args[1], ...}; + * FX function call: + * name(args[0], args[1], ...); + */ +struct hlsl_state_block_entry +{ + bool is_function_call; + + /* For assignments, the name in the lhs. For function calls, the name of the function. */ + char *name; + + /* Whether the lhs in an assignment is an array and, in that case, its size. */ + bool lhs_is_array; + unsigned int lhs_array_size; I suspect this is rather an index. Effect documentation is nonexistent, but [1] shows some hints, this is probably how you set per-RT blend states.
It's probably worth testing with an actual effect target to see if BlendEnable is different from BlendEnable[0]. [1] https://learn.microsoft.com/en-us/windows/win32/direct3d11/d3d11-effect-vari... -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/739#note_65841