HLSL: allow mixed user & builtin members in hull shader output structure
authorLoopDawg <sk_opengl@khasekhemwy.net>
Sun, 10 Sep 2017 15:46:55 +0000 (09:46 -0600)
committerLoopDawg <sk_opengl@khasekhemwy.net>
Thu, 14 Sep 2017 22:50:37 +0000 (16:50 -0600)
commita5d8616478077d7af6f1d28e04b220a7a2f3fca7
treeca4d0e85f5d135362cf1c8cdd5e158e9131f2bd6
parentba6a3c290e9d703eb67f484aed764998c4a75f0d
HLSL: allow mixed user & builtin members in hull shader output structure

Hull shaders have an implicitly arrayed output.  This is handled by creating an arrayed form of the
provided output type, and writing to the element of it indexed by InvocationID.

The implicit indirection into that array was causing some troubles when copying to a split
structure.  handleAssign was able to handle simple symbol lvalues, but not an lvalue composed
of an indirection into an array.
SPIRV/GlslangToSpv.cpp
Test/baseResults/hlsl.hull.1.tesc.out
Test/baseResults/hlsl.hull.2.tesc.out
Test/baseResults/hlsl.hull.3.tesc.out
Test/baseResults/hlsl.hull.4.tesc.out [new file with mode: 0644]
Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out
Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out
Test/baseResults/hlsl.hull.void.tesc.out
Test/hlsl.hull.4.tesc [new file with mode: 0644]
gtests/Hlsl.FromFile.cpp
hlsl/hlslParseHelper.cpp