vkd3d-shader/ir: Validate index count for some register types.
Merge request reports
Activity
added 6 commits
- 9e563a33 - vkd3d-shader/d3dbc: Do not emit indices for DEPTHOUT registers.
- bf3495c3 - vkd3d-shader/ir: Validate index count for DEPTHOUT registers.
- cf97fa25 - vkd3d-shader/ir: Validate index count for DEPTHOUTGE registers.
- fde474d2 - vkd3d-shader/ir: Validate index count for DEPTHOUTLE registers.
- f2263c5c - vkd3d-shader/ir: Validate index count for RASTOUT registers.
- 8897331f - vkd3d-shader/ir: Validate index count for MISCTYPE registers.
Toggle commit listrequested review from @zfigura
Especially for the first commit it would be great to have @zfigura's opinion on this.
I don't have strong opinions on whether 1/6 is better than the alternative.
If we do go with 1/6, LOOP (aL) definitely doesn't have an index either. PREDICATE (p0) and ADDR (a0) both have an index in the assembly, but the index doesn't mean anything as there's only one register of each type. (ADDR is also the same as TEXTURE, which is a bit awkward.) So I'd assert LOOP should certainly be treated like DEPTHOUT; I'm less sure about the other two.
I haven't begun touch other registers in part because I noticed that ADDR and TEXTURE share the same value and I wanted to understand what's really supposed to happen there before writing validation checks, and in part because you mentioned having some patches to regularize a few quirks in VSIR (such as splitting ADDR and TEXTURE), so, since I'm not in a rush, I wanted to see how things settled.
My general philosophy is that each time an index carry no information it should just not exist is VSIR, so that would be the case of PREDICATE and ADDR too. To me the zero in "p0" is just part of the name. I can also tolerate an index with a fixed value if anybody has strong opinions, it's not that much more work. To me that's mostly a matter of language cleanness.
added 23 commits
-
8897331f...caa2a9d3 - 17 commits from branch
wine:master
- 53e35f2d - vkd3d-shader/d3dbc: Do not emit indices for DEPTHOUT registers.
- c3757e69 - vkd3d-shader/ir: Validate index count for DEPTHOUT registers.
- 62598326 - vkd3d-shader/ir: Validate index count for DEPTHOUTGE registers.
- 19d35d89 - vkd3d-shader/ir: Validate index count for DEPTHOUTLE registers.
- 99aebb1b - vkd3d-shader/ir: Validate index count for RASTOUT registers.
- 7e9dc8da - vkd3d-shader/ir: Validate index count for MISCTYPE registers.
Toggle commit list-
8897331f...caa2a9d3 - 17 commits from branch