glslang/Test/hlsl.struct.frag
steve-lunarg b3da8a9cb3 HLSL: phase 2e: introduce lower level addBinaryNode/UnaryNode fns
- hlsl.struct.frag variable changed to static, assignment replacd.

- Created new low level functions addBinaryNode and addUnaryNode.  These are
  used by higher level functions such as addAssignment, and do not do any
  argument promotion or conversion of any sort.

- Two functions above are now used in RWTexture lvalue conversions.  Also,
  other direction creations of unary or binary nodes now use them, e.g, addIndex.
  This cleans up some existing code.

- removed handling of EOpVectorTimesScalar from promote()

- removed comment from ParseHelper.cpp
2016-10-12 12:39:44 -06:00

44 lines
737 B
GLSL

struct {
};
struct {
bool b;
};
struct myS {
bool b, c;
float4 a, d;
};
myS s1;
static struct {
float4 i;
} s2;
struct IN_S {
linear float4 a;
nointerpolation bool b;
noperspective centroid float1 c;
sample centroid float2 d;
bool ff1 : SV_IsFrontFace;
bool ff2 : packoffset(c0.y);
bool ff3 : packoffset(c0.y) : register(ps_5_0, s0) ;
float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) <int bambam=30;> ;
};
float ff5 : packoffset(c101.y) : register(ps_5_0, s[5]);
float ff6 : packoffset(c102.y) : register(s3[5]);
float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0
{
struct FS {
bool3 b3;
} s3;
s3 == s3;
s2.i = s.ff4;
return input;
}