On Mon Jan 30 23:52:15 2023 +0000, Francisco Casas wrote:
changed this line in [version 3 of the diff](/wine/vkd3d/-/merge_requests/66/diffs?diff_id=30056&start_sha=3a2b7fdc75a4ef5d12a528f9e6cfef47ae646a78#c6c9a40d72060550079c91bb6dd5741748169928_180_186)
We require allocating variables across multiple register sets because some variables (in particular structs) can contain fields of different objects and numeric types, and we can't promote these fields into separated variables (well, at least before allocation), since allocation has a set of wonky rules that consider the variable as a whole (that the next patches try to address).
For instance, in the following shader:
https://shader-playground.timjones.io/fc9cdeee0e000008281a7d3f1c7d94b9
even if only one texture and one sampler are used, they bindings are `t5` and `s2` respectively.
I recall attempting to separate variables by regset a couple of times without success, so there should also be other additional reasons that I cannot clearly remember.