HLSL: struct splitting: assignments of hierarchical split types
authorsteve-lunarg <steve_gh@khasekhemwy.net>
Mon, 19 Dec 2016 22:48:01 +0000 (15:48 -0700)
committersteve-lunarg <steve_gh@khasekhemwy.net>
Tue, 27 Dec 2016 03:17:13 +0000 (20:17 -0700)
commit132d331870233da16aaea15b5d4a8dd2e884559d
tree759f08bcd16cb4f0fa5da4aa895980c37e0da033
parenta2e7531057488de0329a562eb28667dd3e2f5c28
HLSL: struct splitting: assignments of hierarchical split types

This commit adds support for copying nested hierarchical types of split
types.  E.g, a struct of a struct containing both user and builtin interstage
IO variables.

When copying split types, if any subtree does NOT contain builtin interstage
IO, we can copy the whole subtree with one assignment, which saves a bunch
of AST verbosity for memberwise copies of that subtree.
19 files changed:
Test/baseResults/hlsl.gather.basic.dx10.vert.out
Test/baseResults/hlsl.getdimensions.dx10.vert.out
Test/baseResults/hlsl.load.basic.dx10.vert.out
Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
Test/baseResults/hlsl.struct.split.array.geom.out [new file with mode: 0644]
Test/baseResults/hlsl.struct.split.nested.geom.out [new file with mode: 0644]
Test/baseResults/hlsl.struct.split.trivial.geom.out [new file with mode: 0644]
Test/baseResults/hlsl.struct.split.trivial.vert.out
Test/baseResults/hlsl.structarray.flatten.geom.out
Test/baseResults/hlsl.structin.vert.out
Test/hlsl.struct.split.array.geom [new file with mode: 0644]
Test/hlsl.struct.split.nested.geom [new file with mode: 0644]
Test/hlsl.struct.split.trivial.geom [new file with mode: 0644]
glslang/Include/Types.h
gtests/Hlsl.FromFile.cpp
hlsl/hlslGrammar.cpp
hlsl/hlslParseHelper.cpp
hlsl/hlslParseHelper.h