HLSL: matrix swizzle (_12, _m23) syntax, partial semantics.

This partially addressess issue #670, for when the matrix swizzle
degenerates to a component or column: m[c], m[c][r] (where HLSL
swaps rows and columns for user's view).

An error message is given for the arbitrary cases not covered.

These cases will work for arbitrary use of l-values.

Future work will handle more arbitrary swizzles, which might
not work as arbitrary l-values.
This commit is contained in:
John Kessenich
2017-01-12 16:51:18 -07:00
parent 913e3b686a
commit 001dfa1c5c
6 changed files with 367 additions and 62 deletions

View File

@@ -154,6 +154,7 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.logical.binary.frag", "main"},
{"hlsl.logical.binary.vec.frag", "main"},
{"hlsl.matNx1.frag", "main"},
{"hlsl.matrixSwizzle.vert", "ShaderFunction"},
{"hlsl.mintypes.frag", "main"},
{"hlsl.multiEntry.vert", "RealEntrypoint"},
{"hlsl.multiReturn.frag", "main"},