HLSL: fix copies between arrays of structs of builtins, and arrayed builtins.
Structs are split to remove builtin members to create valid SPIR-V. In this process, an outer structure array dimension may be propegated onto the now-removed builtin variables. For example, a mystruct[3].position -> position[3]. The copy between the split and unsplit forms would handle this in some cases, but not if the array dimension was at different levels of aggregate. It now does this, but may not handle arbitrary composite types. Unclear if that has any semantic meaning for builtins though.
This commit is contained in:
parent
abd8dca86d
commit
ec712ebea1
5 changed files with 473 additions and 174 deletions
|
|
@ -214,7 +214,7 @@ INSTANTIATE_TEST_CASE_P(
|
|||
{"hlsl.struct.split.assign.frag", "main"},
|
||||
{"hlsl.struct.split.call.vert", "main"},
|
||||
{"hlsl.struct.split.nested.geom", "main"},
|
||||
//{"hlsl.struct.split.trivial.geom", "main"},
|
||||
{"hlsl.struct.split.trivial.geom", "main"},
|
||||
{"hlsl.struct.split.trivial.vert", "main"},
|
||||
{"hlsl.structarray.flatten.frag", "main"},
|
||||
{"hlsl.structarray.flatten.geom", "main"},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue